From 817b94f14b182d59036e6ead13acb1c097767ce1 Mon Sep 17 00:00:00 2001
From: Mohan Raj
Date: Sat, 21 Sep 2024 11:17:21 +0100
Subject: [PATCH 1/2] fix css
---
package.json | 8 +-
src/components/snippets/JsSnippet.tsx | 4 +-
src/components/snippets/PhpSnippet.tsx | 4 +-
src/components/snippets/Snippet.tsx | 21 +-
src/components/snippets/TsSupport.tsx | 5 +-
.../__snapshots__/JsSnippet.test.js.snap | 468 ++++++++----------
.../__snapshots__/PhpSnippet.test.js.snap | 156 +++---
.../__snapshots__/TsSupport.test.js.snap | 251 +++++-----
src/styles/settings.scss | 6 +
yarn.lock | 65 ++-
10 files changed, 464 insertions(+), 524 deletions(-)
diff --git a/package.json b/package.json
index 7081875..956600b 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,7 @@
"start": "wp-scripts start",
"test:e2e": "wp-scripts test-playwright",
"test:js": "wp-scripts test-unit-js",
+ "test:js:update": "wp-scripts test-unit-js --updateSnapshot",
"test:performance": "wp-scripts test-playwright --config tests/performance/playwright.config.ts",
"test:performance:merge-reports": "playwright merge-reports --reporter tests/performance/config/performance-reporter.ts ./blob-report",
"test:performance:results": "node tests/performance/cli/results.js",
@@ -29,6 +30,7 @@
},
"dependencies": {
"@testing-library/user-event": "^14.5.2",
+ "@types/react-highlight": "^0.12.8",
"@wordpress/api-fetch": "^6.48.0",
"@wordpress/components": "^27.1.0",
"@wordpress/data": "^9.23.0",
@@ -39,7 +41,9 @@
"dotenv": "^16.4.5",
"react": "18.2.0",
"react-dom": "18.2.0",
- "react-syntax-highlighter": "^15.5.0",
+ "react-highlight": "^0.15.0",
+ "react-highlight-syntax": "^1.2.1",
+ "react-syntax-highlighter": "^15.4.3",
"react-test-renderer": "^18.2.0",
"ts-loader": "^9.5.1",
"typescript": "^5.4.2"
@@ -50,7 +54,7 @@
"@testing-library/react": "14.2.2",
"@types/jest": "^29.5.12",
"@types/node": "^20.12.5",
- "@types/react-syntax-highlighter": "^15.5.11",
+ "@types/react-syntax-highlighter": "15.5.6",
"@types/wordpress__components": "^23.0.11",
"@wordpress/e2e-test-utils-playwright": "^0.22.0",
"@wordpress/env": "^9.7.0",
diff --git a/src/components/snippets/JsSnippet.tsx b/src/components/snippets/JsSnippet.tsx
index bcf88fe..e36e5f8 100644
--- a/src/components/snippets/JsSnippet.tsx
+++ b/src/components/snippets/JsSnippet.tsx
@@ -1,7 +1,6 @@
import Snippet from './Snippet';
import { useMemo } from '@wordpress/element';
import { __ } from '@wordpress/i18n';
-import Clipboard from '../common/Clipboard';
const JsSnippet = ({ flag }: { flag: string }) => {
const jsSnippet = useMemo(() => {
@@ -18,8 +17,7 @@ domReady(function () {
return (
{__('JavaScript Snippet', 'codeb-feature-flags')}
-
-
+
);
};
diff --git a/src/components/snippets/PhpSnippet.tsx b/src/components/snippets/PhpSnippet.tsx
index f2d6228..337a278 100644
--- a/src/components/snippets/PhpSnippet.tsx
+++ b/src/components/snippets/PhpSnippet.tsx
@@ -1,7 +1,6 @@
import Snippet from './Snippet';
import { useMemo } from '@wordpress/element';
import { __ } from '@wordpress/i18n';
-import Clipboard from '../common/Clipboard';
const PhpSnippet = ({ flag }: { flag: string }) => {
const phpSnippet = useMemo(() => {
@@ -13,8 +12,7 @@ if ( class_exists( '\\CodeB\\FeatureFlags\\Flag' ) && Flag::is_enabled( '${flag}
return (
{__('PHP Snippet', 'codeb-feature-flags')}
-
-
+
);
};
diff --git a/src/components/snippets/Snippet.tsx b/src/components/snippets/Snippet.tsx
index c0995ec..3928c1b 100644
--- a/src/components/snippets/Snippet.tsx
+++ b/src/components/snippets/Snippet.tsx
@@ -1,17 +1,16 @@
-import SyntaxHighlighter from 'react-syntax-highlighter';
-import { a11yDark } from 'react-syntax-highlighter/dist/cjs/styles/hljs';
+import ReactHighlightSyntax from 'react-highlight-syntax';
+import type { Language } from 'react-highlight-syntax';
-const Snippet = ({
- data,
- language,
-}: {
- data: string;
- language: string;
-}): JSX.Element => {
+const Snippet = ({ data, language }: { data: string; language: Language }) => {
return (
-
+
{data}
-
+
);
};
diff --git a/src/components/snippets/TsSupport.tsx b/src/components/snippets/TsSupport.tsx
index 411dc14..c6aa66a 100644
--- a/src/components/snippets/TsSupport.tsx
+++ b/src/components/snippets/TsSupport.tsx
@@ -1,7 +1,5 @@
import { useMemo } from '@wordpress/element';
import { __ } from '@wordpress/i18n';
-import Clipboard from '../common/Clipboard';
-
import Snippet from './Snippet';
const TsSupport = (): JSX.Element => {
@@ -30,8 +28,7 @@ export {};`;
src directory
) and add the following declaration.
-
-
+
);
};
diff --git a/src/components/snippets/__tests__/__snapshots__/JsSnippet.test.js.snap b/src/components/snippets/__tests__/__snapshots__/JsSnippet.test.js.snap
index ce80ef7..6054782 100644
--- a/src/components/snippets/__tests__/__snapshots__/JsSnippet.test.js.snap
+++ b/src/components/snippets/__tests__/__snapshots__/JsSnippet.test.js.snap
@@ -8,149 +8,127 @@ exports[`JsSnippet component should update the JavaScript snippet when the flag
JavaScript Snippet
-
-
-
-
-
-
- import
-
-
- domReady
-
-
+
+
+
+
+
- from
-
-
+
+ import
+
+ domReady
+
+ from
+
-
-
- '@wordpress/dom-ready'
-
-
+
+ '@wordpress/dom-ready'
+
;
-
-
-
- domReady(
-
-
- function
-
-
- (
-
-
- )
-
-
+domReady(
+
+
+ function
+
+ (
+
+ )
+
{
-
-
-
-
-
-
- if
-
-
+
+
+ if
+
(
-
-
-
-
-
-
- typeof
-
-
+
+
+ typeof
+
-
-
- window
-
-
+
+ window
+
?.codebFeatureFlags !==
-
-
- 'undefined'
-
-
+
+ 'undefined'
+
&&
-
-
-
-
-
-
- window
-
-
+
+
+ window
+
.codebFeatureFlags.isEnabled(
-
-
- 'testFlag1'
-
-
+
+ 'testFlag1'
+
)
-
-
- ) {
-
-
-
-
-
- // js code goes here...
-
-
+ ) {
+
+
-
-
- }
+ }
});
-
-
+
+
+
`;
@@ -163,149 +141,127 @@ exports[`JsSnippet component should update the JavaScript snippet when the flag
JavaScript Snippet
-
-
-
-
-
-
- import
-
-
- domReady
-
-
+
+
+
+
+
- from
-
-
+
+ import
+
+ domReady
+
+ from
+
-
-
- '@wordpress/dom-ready'
-
-
+
+ '@wordpress/dom-ready'
+
;
-
-
-
- domReady(
-
-
- function
-
-
- (
-
-
- )
-
-
+domReady(
+
+
+ function
+
+ (
+
+ )
+
{
-
-
-
-
-
-
- if
-
-
+
+
+ if
+
(
-
-
-
-
-
-
- typeof
-
-
+
+
+ typeof
+
-
-
- window
-
-
+
+ window
+
?.codebFeatureFlags !==
-
-
- 'undefined'
-
-
+
+ 'undefined'
+
&&
-
-
-
-
-
-
- window
-
-
+
+
+ window
+
.codebFeatureFlags.isEnabled(
-
-
- 'testFlag2'
-
-
+
+ 'testFlag2'
+
)
-
-
- ) {
-
-
-
-
-
- // js code goes here...
-
-
+ ) {
+
+
-
-
- }
+ }
});
-
-
+
+
+
`;
diff --git a/src/components/snippets/__tests__/__snapshots__/PhpSnippet.test.js.snap b/src/components/snippets/__tests__/__snapshots__/PhpSnippet.test.js.snap
index f1b4eca..286a36a 100644
--- a/src/components/snippets/__tests__/__snapshots__/PhpSnippet.test.js.snap
+++ b/src/components/snippets/__tests__/__snapshots__/PhpSnippet.test.js.snap
@@ -8,97 +8,95 @@ exports[`PhpSnippet component matches snapshot 1`] = `
PHP Snippet
-
-
-
-
-
-
- use
-
-
-
-
-
+
+
+
+
+
- CodeB
-
-
+
+ use
+
+
+
+ CodeB
+
\\
-
-
- FeatureFlags
-
-
+
+ FeatureFlags
+
\\
-
-
- Flag
-
-
+
+ Flag
+
;
-
-
-
- if
-
-
+
+ if
+
( class_exists(
-
-
- '\\CodeB\\FeatureFlags\\Flag'
-
-
+
+ '\\CodeB\\FeatureFlags\\Flag'
+
) && Flag::is_enabled(
-
-
- 'testFlag'
-
-
+
+ 'testFlag'
+
) ) {
-
-
-
-
-
-
- // php code goes here...
-
-
+
+
-
-
- }
-
-
+}
+
+
+
`;
diff --git a/src/components/snippets/__tests__/__snapshots__/TsSupport.test.js.snap b/src/components/snippets/__tests__/__snapshots__/TsSupport.test.js.snap
index f4ae727..9fd309b 100644
--- a/src/components/snippets/__tests__/__snapshots__/TsSupport.test.js.snap
+++ b/src/components/snippets/__tests__/__snapshots__/TsSupport.test.js.snap
@@ -23,164 +23,137 @@ exports[`Typescript snippet component renders without any error 1`] = `
directory ) and add the following declaration.
-
-
-
-
-
-
- declare
-
-
-
-
-
+
+
+
+
+
- namespace
-
-
+
+ declare
+
+
+
+ namespace
+
codebFeatureFlags {
-
-
-
-
-
-
- export
-
-
+
+
+ export
+
-
-
- interface
-
-
+
+ interface
+
FeatureFlagProps {
-
-
-
-
-
-
- isEnabled
-
-
+
+
+ isEnabled
+
:
-
-
- (
-
-
- flag:
-
-
- string
-
-
- ) =>
-
-
+
+ (
+
+ flag:
+
+ string
+
+
+ ) =>
+
-
-
- boolean
-
-
+
+ boolean
+
;
-
-
- }
+ }
}
-
-
- declare
-
-
+
+ declare
+
-
-
- global
-
-
+
+ global
+
{
-
-
-
-
-
-
- interface
-
-
+
+
+ interface
+
Window {
-
-
-
-
-
-
- codebFeatureFlags
-
-
+
+
+ codebFeatureFlags
+
: codebFeatureFlags.FeatureFlagProps;
-
-
- }
+ }
}
-
-
- export
-
-
+
+ export
+
{};
-
-
-
+
+
+
`;
diff --git a/src/styles/settings.scss b/src/styles/settings.scss
index bb0e59c..3ac7b39 100644
--- a/src/styles/settings.scss
+++ b/src/styles/settings.scss
@@ -18,9 +18,15 @@
.components-snackbar__icon {
top: auto;
left: 18px;
+ position: absolute;
}
}
+.components-snackbar .components-snackbar__content-with-icon {
+ padding-left: 24px;
+ position: static !important;
+}
+
.feature-flag-loader {
.components-spinner {
diff --git a/yarn.lock b/yarn.lock
index d47af1d..bf2e460 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1058,13 +1058,20 @@
resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310"
integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==
-"@babel/runtime@^7.12.5", "@babel/runtime@^7.14.8", "@babel/runtime@^7.16.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.21.0", "@babel/runtime@^7.23.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
+"@babel/runtime@^7.12.5", "@babel/runtime@^7.14.8", "@babel/runtime@^7.16.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.21.0", "@babel/runtime@^7.23.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
version "7.24.0"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.0.tgz#584c450063ffda59697021430cb47101b085951e"
integrity sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==
dependencies:
regenerator-runtime "^0.14.0"
+"@babel/runtime@^7.3.1":
+ version "7.25.6"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.6.tgz#9afc3289f7184d8d7f98b099884c26317b9264d2"
+ integrity sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==
+ dependencies:
+ regenerator-runtime "^0.14.0"
+
"@babel/template@^7.22.15", "@babel/template@^7.24.0", "@babel/template@^7.3.3":
version "7.24.0"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50"
@@ -2265,10 +2272,17 @@
dependencies:
"@types/react" "*"
-"@types/react-syntax-highlighter@^15.5.11":
- version "15.5.11"
- resolved "https://registry.yarnpkg.com/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.11.tgz#e050745b22eff81fc13cb0c763dd0d063413bbf1"
- integrity sha512-ZqIJl+Pg8kD+47kxUjvrlElrraSUrYa4h0dauY/U/FTUuprSCqvUj+9PNQNQzVc6AJgIWUUxn87/gqsMHNbRjw==
+"@types/react-highlight@^0.12.8":
+ version "0.12.8"
+ resolved "https://registry.yarnpkg.com/@types/react-highlight/-/react-highlight-0.12.8.tgz#46476e6ae60f21a60f5b1fd1954944c63f4b23d9"
+ integrity sha512-V7O7zwXUw8WSPd//YUO8sz489J/EeobJljASGhP0rClrvq+1Y1qWEpToGu+Pp7YuChxhAXSgkLkrOYpZX5A62g==
+ dependencies:
+ "@types/react" "*"
+
+"@types/react-syntax-highlighter@15.5.6":
+ version "15.5.6"
+ resolved "https://registry.yarnpkg.com/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.6.tgz#77c95e6b74d2be23208fcdcf187b93b47025f1b1"
+ integrity sha512-i7wFuLbIAFlabTeD2I1cLjEOrG/xdMa/rpx2zwzAoGHuXJDhSqp9BSfDlMHSh9JSuNfxHk9eEmMX6D55GiyjGg==
dependencies:
"@types/react" "*"
@@ -2367,9 +2381,9 @@
source-map "^0.6.1"
"@types/unist@^2":
- version "2.0.10"
- resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.10.tgz#04ffa7f406ab628f7f7e97ca23e290cd8ab15efc"
- integrity sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==
+ version "2.0.11"
+ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.11.tgz#11af57b127e32487774841f7a4e54eab166d03c4"
+ integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==
"@types/webpack-sources@*":
version "3.2.3"
@@ -2743,7 +2757,7 @@
"@wordpress/dom-ready" "^3.53.0"
"@wordpress/i18n" "^4.53.0"
-"@wordpress/api-fetch@^6.48.0", "@wordpress/api-fetch@^6.51.0", "@wordpress/api-fetch@^6.52.0":
+"@wordpress/api-fetch@^6.48.0", "@wordpress/api-fetch@^6.51.0":
version "6.52.0"
resolved "https://registry.yarnpkg.com/@wordpress/api-fetch/-/api-fetch-6.52.0.tgz#eb79b4ab7ad7df5297a554e0839449e9217a32c8"
integrity sha512-zLgpRT6iKdfQupF7hGYbixjqgkeU2taclEHbbQqP6ClLfG709I3kX6Ft+2wh6FaG8MhdVZkl0/E0DTROJ5lbyA==
@@ -2934,21 +2948,6 @@
mime "^3.0.0"
web-vitals "^3.5.0"
-"@wordpress/e2e-test-utils-playwright@^0.23.0":
- version "0.23.0"
- resolved "https://registry.yarnpkg.com/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-0.23.0.tgz#246c3c8d79a4a0cf2e639f4aa73154cbde247742"
- integrity sha512-IrLvLho82nWG0tPYNODHtMYRjehMVR2w+wwM3NoEOjHxhAfDCBU0+/7e63z/obAOWDLKe1jeCXXQ6sRyr1cOMw==
- dependencies:
- "@wordpress/api-fetch" "^6.52.0"
- "@wordpress/keycodes" "^3.55.0"
- "@wordpress/url" "^3.56.0"
- change-case "^4.1.2"
- form-data "^4.0.0"
- get-port "^5.1.1"
- lighthouse "^10.4.0"
- mime "^3.0.0"
- web-vitals "^3.5.0"
-
"@wordpress/element@^5.0.0", "@wordpress/element@^5.30.0":
version "5.30.0"
resolved "https://registry.yarnpkg.com/@wordpress/element/-/element-5.30.0.tgz#8ea18fe92419d7db279c2629c367bb7825578ef6"
@@ -3088,7 +3087,7 @@
"@wordpress/jest-console" "^7.25.0"
babel-jest "^29.6.2"
-"@wordpress/keycodes@^3.53.0", "@wordpress/keycodes@^3.54.0", "@wordpress/keycodes@^3.55.0":
+"@wordpress/keycodes@^3.53.0", "@wordpress/keycodes@^3.54.0":
version "3.55.0"
resolved "https://registry.yarnpkg.com/@wordpress/keycodes/-/keycodes-3.55.0.tgz#a964da7a4089be33492fcb4df2442468c2f05c9d"
integrity sha512-93Z479aesGmCo2BZ4UX8gVGabVfj128hCaod1cknZBkOymYxOCc6bobiEQ3ncZ1m6HTxAt5ikjeDXoWuCrPKsQ==
@@ -6391,7 +6390,7 @@ highlight-words-core@^1.2.2:
resolved "https://registry.yarnpkg.com/highlight-words-core/-/highlight-words-core-1.2.2.tgz#1eff6d7d9f0a22f155042a00791237791b1eeaaa"
integrity sha512-BXUKIkUuh6cmmxzi5OIbUJxrG8OAk2MqoL1DtO3Wo9D2faJg2ph5ntyuQeLqaHJmzER6H5tllCDA9ZnNe9BVGg==
-highlight.js@^10.4.1, highlight.js@~10.7.0:
+highlight.js@^10.4.1, highlight.js@^10.5.0, highlight.js@~10.7.0:
version "10.7.3"
resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531"
integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==
@@ -9458,6 +9457,18 @@ react-dom@18.2.0, react-dom@^18.2.0:
loose-envify "^1.1.0"
scheduler "^0.23.0"
+react-highlight-syntax@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/react-highlight-syntax/-/react-highlight-syntax-1.2.1.tgz#ce95af5247cf3526463dd9e3d1d59de077ea2e71"
+ integrity sha512-iX8icq0fdRZFf4vqBWIBtgiNJOGZ1rpsngbjlrBPzub2AhBU9ei5nUn98GONvHWiH4k/mi/pV/wRDySRhr60zA==
+
+react-highlight@^0.15.0:
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/react-highlight/-/react-highlight-0.15.0.tgz#66749d01969853327d499959558f9468330cd9d8"
+ integrity sha512-5uV/b/N4Z421GSVVe05fz+OfTsJtFzx/fJBdafZyw4LS70XjIZwgEx3Lrkfc01W/RzZ2Dtfb0DApoaJFAIKBtA==
+ dependencies:
+ highlight.js "^10.5.0"
+
"react-is@^16.12.0 || ^17.0.0 || ^18.0.0", react-is@^18.0.0, react-is@^18.2.0:
version "18.2.0"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
@@ -9486,7 +9497,7 @@ react-shallow-renderer@^16.15.0:
object-assign "^4.1.1"
react-is "^16.12.0 || ^17.0.0 || ^18.0.0"
-react-syntax-highlighter@^15.5.0:
+react-syntax-highlighter@^15.4.3:
version "15.5.0"
resolved "https://registry.yarnpkg.com/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz#4b3eccc2325fa2ec8eff1e2d6c18fa4a9e07ab20"
integrity sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==
From d3e9a202509720b8c458944e27e3f1781e6cd86d Mon Sep 17 00:00:00 2001
From: Mohan Raj
Date: Sat, 21 Sep 2024 11:55:04 +0100
Subject: [PATCH 2/2] update e2e tests with screenshots
---
package.json | 1 +
playwright.config.ts | 2 +-
tests/e2e/feature-flags.spec.ts | 6 +++--
tests/e2e/screenshots/delete-flag-modal.png | Bin 0 -> 18323 bytes
tests/e2e/screenshots/flag-disabled.png | Bin 0 -> 19508 bytes
tests/e2e/screenshots/no-flags.png | Bin 0 -> 5509 bytes
tests/e2e/screenshots/sdk-modal.png | Bin 0 -> 20989 bytes
tests/e2e/screenshots/some-flags.png | Bin 0 -> 30130 bytes
tests/e2e/visual-comparison.spec.ts | 25 +++++++++++++++-----
9 files changed, 25 insertions(+), 9 deletions(-)
create mode 100644 tests/e2e/screenshots/delete-flag-modal.png
create mode 100644 tests/e2e/screenshots/flag-disabled.png
create mode 100644 tests/e2e/screenshots/no-flags.png
create mode 100644 tests/e2e/screenshots/sdk-modal.png
create mode 100644 tests/e2e/screenshots/some-flags.png
diff --git a/package.json b/package.json
index 956600b..cbdda01 100644
--- a/package.json
+++ b/package.json
@@ -13,6 +13,7 @@
"prepare": "husky",
"start": "wp-scripts start",
"test:e2e": "wp-scripts test-playwright",
+ "test:e2e:debug": "wp-scripts test-playwright --ui",
"test:js": "wp-scripts test-unit-js",
"test:js:update": "wp-scripts test-unit-js --updateSnapshot",
"test:performance": "wp-scripts test-playwright --config tests/performance/playwright.config.ts",
diff --git a/playwright.config.ts b/playwright.config.ts
index cd5dc73..f501d47 100644
--- a/playwright.config.ts
+++ b/playwright.config.ts
@@ -17,7 +17,7 @@ export default defineConfig({
use: {
baseURL: process.env.WP_BASE_URL,
trace: 'on-first-retry',
- permissions: ['clipboard-read'],
+ permissions: ['clipboard-write', 'clipboard-read'],
},
projects: [
diff --git a/tests/e2e/feature-flags.spec.ts b/tests/e2e/feature-flags.spec.ts
index 7d56cfe..b55e702 100644
--- a/tests/e2e/feature-flags.spec.ts
+++ b/tests/e2e/feature-flags.spec.ts
@@ -97,14 +97,16 @@ test.describe('Feature flags', () => {
).toBeVisible();
// Check PHP Snippet clipboard details
- await page.getByLabel('Copy to clipboard').first().click();
+ await page.getByRole('button').nth(1).click();
+
+ // await page.getByLabel('Copy to clipboard').first().click();
const phpClipboardText = await page.evaluate(
'navigator.clipboard.readText()'
);
expect(phpClipboardText).toContain(`Flag::is_enabled( '${flagName}' )`);
// Check JS Snippet clipboard details
- await page.getByLabel('Copy to clipboard').nth(1).click();
+ await page.getByRole('button').nth(2).click();
const jsClipboardText: string = await page.evaluate(
'navigator.clipboard.readText()'
);
diff --git a/tests/e2e/screenshots/delete-flag-modal.png b/tests/e2e/screenshots/delete-flag-modal.png
new file mode 100644
index 0000000000000000000000000000000000000000..05c1004b1bca3d0773368868e3dcb90cdc6f57f0
GIT binary patch
literal 18323
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