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...
-        
-        
+	) {
+		
+          
+            // 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...
-        
-        
+	) {
+		
+          
+            // 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...
-        
-        
+	
+          
+            // 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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

XmO-+p<7m-pVVNAD_ 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 literal 0 HcmV?d00001 diff --git a/tests/e2e/visual-comparison.spec.ts b/tests/e2e/visual-comparison.spec.ts index c962640..2b2853c 100644 --- a/tests/e2e/visual-comparison.spec.ts +++ b/tests/e2e/visual-comparison.spec.ts @@ -1,4 +1,4 @@ -import { test, expect } from '@wordpress/e2e-test-utils-playwright'; +import { test } from '@wordpress/e2e-test-utils-playwright'; import { AddNewFlagAndFill, CloseSdkModal, @@ -23,7 +23,9 @@ test.describe('Visual tests', () => { }); test('Feature flags screen without flags', async ({ page }) => { - await expect(page).toHaveScreenshot('no-flags.png'); + await page + .locator('#codeb_feature_flags_settings_screen') + .screenshot({ path: 'tests/e2e/screenshots/no-flags.png' }); }); test('Feature flags screen with some flags', async ({ page }) => { @@ -33,13 +35,18 @@ test.describe('Visual tests', () => { await AddNewFlagAndFill(page, 'healthCheck'); await SaveFlags(page); - await expect(page).toHaveScreenshot('some-flags.png'); + + await page + .locator('#codeb_feature_flags_settings_screen') + .screenshot({ path: 'tests/e2e/screenshots/some-flags.png' }); }); test('Toggle feature flag', async ({ page }) => { await AddNewFlagAndFill(page, 'auth0'); await DisableFlag(page, true); - await expect(page).toHaveScreenshot('flag-disabled.png'); + await page + .locator('#codeb_feature_flags_settings_screen') + .screenshot({ path: 'tests/e2e/screenshots/flag-disabled.png' }); }); test('Delete flag modal', async ({ page }) => { @@ -51,7 +58,11 @@ test.describe('Visual tests', () => { .getByLabel('Delete Flag') .click(); - await expect(page).toHaveScreenshot('delete-flag-modal.png'); + await page + .locator('#codeb_feature_flags_settings_screen') + .screenshot({ + path: 'tests/e2e/screenshots/delete-flag-modal.png', + }); await page.getByRole('button', { name: 'Yes' }).click(); }); @@ -60,7 +71,9 @@ test.describe('Visual tests', () => { await AddNewFlagAndFill(page, 'drag-drop'); await OpenSdkModal(page); - await expect(page).toHaveScreenshot('sdk-modal.png'); + await page + .locator('#codeb_feature_flags_settings_screen') + .screenshot({ path: 'tests/e2e/screenshots/sdk-modal.png' }); await CloseSdkModal(page); });