Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
cb63f69
Merge pull request #47 from BeAPI/release/1.1.5
firestar300 Aug 24, 2026
c1e55b1
chore(scripts): rename env start/stop npm scripts (#93541)
firestar300 Sep 24, 2026
3f1da6c
feat(blocks): expand supports and refresh descriptions (#93541)
firestar300 Sep 24, 2026
c06a0a2
feat(toolbar): share add/remove tab controls (#93541)
firestar300 Sep 24, 2026
78fd99c
feat(a11y): move tablist to nav and complete ARIA roles (#93541)
firestar300 Sep 24, 2026
99d1477
feat(nav): add appender to insert synced tabs (#93541)
firestar300 Sep 24, 2026
6c8b42e
feat(languages): update fr languages
firestar300 Sep 24, 2026
d7dbfb7
ci(release): move version scripts under tests/bin (#93541)
firestar300 Sep 24, 2026
3a2f134
chore(scripts): point bump npm script to tests/bin (#93541)
firestar300 Sep 24, 2026
5d36aaf
fix: Panel pairing locks were removed
firestar300 Sep 24, 2026
d99c642
fix: Stale index after tab removal
firestar300 Sep 24, 2026
d2a9976
fix: KSES drops new tab attributes
firestar300 Sep 24, 2026
b909eef
fix: Deprecations omit original supports
firestar300 Sep 24, 2026
d02ab86
feat(icons): default to core/icon with PHP allowlist (#93541)
firestar300 Sep 24, 2026
88aeae7
fix: const naming
firestar300 Sep 24, 2026
f7fef3e
Merge pull request #49 from BeAPI/issue/93541
firestar300 Sep 24, 2026
e19752d
fix: remove anchor support for panel item
firestar300 Sep 25, 2026
c54ed01
fix: Core icon styles never apply
firestar300 Sep 25, 2026
9c2812d
fix: Saved tab omits active class
firestar300 Sep 25, 2026
45581ae
fix: Save change invalidates existing tabs
firestar300 Sep 25, 2026
7229d9e
Merge pull request #52 from BeAPI/issue/93541
firestar300 Sep 25, 2026
f2d821b
test: add automated PHP, JS, and E2E suites with CI
firestar300 Sep 25, 2026
7721cd3
fix: Chromium artifact loses execute permissions
firestar300 Sep 25, 2026
8ee4990
Simplify the test framework.
Rahe Sep 25, 2026
ff5c9aa
fix(editor): avoid setState in render and use directInsert
firestar300 Sep 25, 2026
dfd8ade
fix: Test port collides with wp-env
firestar300 Sep 25, 2026
304e680
fix: add missing attribute aria-controls
firestar300 Sep 25, 2026
4dee81c
fix: support WordPress 6.2 in editor E2E and JSX runtime build
firestar300 Sep 28, 2026
c954cf1
fix: JSX runtime polyfill never built
firestar300 Sep 28, 2026
b4da344
Merge pull request #53 from BeAPI/tests
firestar300 Sep 28, 2026
4289b69
feat: enhance icon block defaults for broader compatibility
firestar300 Sep 28, 2026
5214c47
feat: require WordPress 6.4 or later
firestar300 Sep 28, 2026
8b0cc01
Merge pull request #54 from BeAPI/fix/core-icon-support
firestar300 Sep 28, 2026
83a38df
bump: version to 2.0.0
firestar300 Sep 24, 2026
4e3a19f
docs: update changelog
firestar300 Sep 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .distignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
/.wordpress-org
/node_modules
/src
/bin
/tests

.distignore
.editorconfig
Expand All @@ -22,7 +22,6 @@ package.json
package-lock.json
phpcs.xml.dist
phpunit.xml.dist
psalm.xml.dist
README.md
webpack.config.js
yarn.lock
34 changes: 32 additions & 2 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,33 @@
{
"extends": [ "plugin:@wordpress/eslint-plugin/recommended" ]
}
"extends": [ "plugin:@wordpress/eslint-plugin/recommended" ],
"overrides": [
{
"files": [ "tests/js/**/*.js" ],
"env": {
"jest": true,
"browser": true
},
"settings": {
"jsdoc": {
"tagNamePreference": {
"jest-environment": "jest-environment"
}
}
},
"rules": {
"jsdoc/check-tag-names": [
"error",
{
"definedTags": [ "jest-environment" ]
}
]
}
},
{
"files": [ "tests/playwright/**/*.js" ],
"rules": {
"jsdoc/check-tag-names": "off"
}
}
]
}
4 changes: 2 additions & 2 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
/.git export-ignore
/.github export-ignore
/.wordpress-org export-ignore
/vendor/ export-ignore -diff
/node_modules export-ignore
/bin export-ignore
/tests export-ignore

/.distignore export-ignore
/.editorconfig export-ignore
Expand All @@ -19,7 +20,6 @@
/package.json export-ignore
/package-lock.json export-ignore -diff
/phpcs.xml.dist export-ignore
/psalm.xml.dist export-ignore
/README.md export-ignore
/webpack.config.js export-ignore
/yarn.lock export-ignore
34 changes: 10 additions & 24 deletions .github/workflows/pull-request-version.yml
Original file line number Diff line number Diff line change
@@ -1,38 +1,24 @@
name: "Check plugin version and tags"
name: "Check plugin version and release files"
on:
pull_request:
branches:
- main

jobs:
version-check:
name: "Check version doesn't not already exists."
name: "Version bump, tag, and file checks"
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0

- id: set-vars
name: "Set variables from .plugin-data file"
run: |
# Get all data from .plugin-data file
content=`cat ./.plugin-data`
# the following lines are only required for multi line json
content="${content//'%'/'%25'}"
content="${content//$'\n'/'%0A'}"
content="${content//$'\r'/'%0D'}"
# end of optional handling for multi line json
echo "::set-output name=pluginData::$content"
- name: Fetch tags
run: git fetch --tags --prune origin

- id: version-check
name: "Check version in .plugin-data is not existing"
run: |
# Check version from .plugin-data
VERSION=${{fromJson(steps.set-vars.outputs.pluginData).version}}

if git rev-parse "$VERSION" >/dev/null 2>&1; then
echo "Tag aleady exists please update the .plugin-data file to good version";
exit 1;
fi
- name: Verify version bump and release files
env:
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
run: tests/bin/check-release-version.sh
173 changes: 173 additions & 0 deletions .github/workflows/tests-e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow

name: E2E Tests

on: # yamllint disable-line rule:truthy
workflow_dispatch:
pull_request:
paths:
- '**/*.php'
- 'src/**'
- 'tests/playwright/**'
- 'tests/bin/initialize.sh'
- 'composer.json'
- 'composer.lock'
- 'package.json'
- 'package-lock.json'
- '.wp-env.test.json'
- '.github/workflows/tests-e2e.yml'
push:
branches:
- main
paths:
- '**/*.php'
- 'src/**'
- 'tests/playwright/**'
- 'tests/bin/initialize.sh'
- 'composer.json'
- 'composer.lock'
- 'package.json'
- 'package-lock.json'
- '.wp-env.test.json'
- '.github/workflows/tests-e2e.yml'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
prepare:
name: Build assets and prepare Chromium
runs-on: ubuntu-22.04
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version-file: 'package.json'
cache: 'npm'

- name: Install npm dependencies
run: npm ci

- name: Build plugin assets
run: npm run build

- name: Archive build assets
uses: actions/upload-artifact@v4
with:
name: dist-assets
path: build

- name: Cache Chromium
id: playwright-cache
uses: actions/cache@v4
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ hashFiles('package-lock.json') }}

- name: Install Chromium
if: steps.playwright-cache.outputs.cache-hit != 'true'
run: npx playwright install chromium

# Zip artifacts strip Unix execute bits; tar preserves them for Playwright binaries.
- name: Pack Chromium cache
run: tar -C "$HOME/.cache" -czf playwright-chromium.tar.gz ms-playwright

- name: Archive Chromium
uses: actions/upload-artifact@v4
with:
name: playwright-chromium
path: playwright-chromium.tar.gz

test-e2e:
name: E2E - WP ${{ matrix.core || 'latest' }} / PHP ${{ matrix.php }}
needs: prepare
runs-on: ubuntu-22.04
timeout-minutes: 25
strategy:
fail-fast: false
matrix:
include:
- php: '8.1'
core: 'WordPress/WordPress#6.4'
# null = latest official WordPress release (wp-env default).
- php: '8.3'
core: null
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version-file: 'package.json'
cache: 'npm'

- name: Install npm dependencies
run: npm ci

- name: Restore build assets
uses: actions/download-artifact@v4
with:
name: dist-assets
path: build

- name: Restore Chromium
uses: actions/download-artifact@v4
with:
name: playwright-chromium
path: .

- name: Unpack Chromium cache
run: |
mkdir -p "$HOME/.cache"
tar -C "$HOME/.cache" -xzf playwright-chromium.tar.gz

- name: Install Chromium operating-system dependencies
run: npx playwright install-deps chromium

- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: none

- name: Install Composer dependencies
run: composer install --no-interaction --prefer-dist --optimize-autoloader

- name: Launch test environment
env:
WP_ENV_PHP_VERSION: ${{ matrix.php }}
WP_ENV_CORE: ${{ matrix.core }}
run: npm run env:start-ci

- name: Run E2E tests
env:
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: '1'
run: npm run test:e2e

- name: Sanitize Core version for artifact name
id: core-label
if: failure()
run: |
echo "core=${{ matrix.core || 'latest' }}" | tr '/\\#:*?"<>|' '-' >> "$GITHUB_OUTPUT"

- name: Archive failure artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: e2e-${{ steps.core-label.outputs.core }}-php-${{ matrix.php }}
path: artifacts/test-results
if-no-files-found: ignore

- name: Stop test environment
if: always()
continue-on-error: true
run: npm run env:stop-tests
50 changes: 50 additions & 0 deletions .github/workflows/tests-js.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow

name: JS Unit Tests

on: # yamllint disable-line rule:truthy
workflow_dispatch:
pull_request:
paths:
- 'src/**'
- 'tests/js/**'
- 'package.json'
- 'package-lock.json'
- '.github/workflows/tests-js.yml'
push:
branches:
- main
paths:
- 'src/**'
- 'tests/js/**'
- 'package.json'
- 'package-lock.json'
- '.github/workflows/tests-js.yml'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
test-js:
name: Jest unit tests
runs-on: ubuntu-22.04
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version-file: 'package.json'
cache: 'npm'

- name: Install npm dependencies
run: npm ci

- name: Run JS unit tests
run: npm run test:unit:js
Loading
Loading