diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 97dc2e75c..f7f208b26 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,11 +11,15 @@ on: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: - # This workflow contains a single job called "build" boo2 + # This workflow contains a single job called "build" build: # The type of runner that the job will run on runs-on: ubuntu-latest + strategy: + matrix: + node-version: [16, 18, 20] + # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it @@ -24,19 +28,22 @@ jobs: - name: Setup Node.js environment uses: actions/setup-node@v2.5.0 with: - # Version Spec of the version to use. Examples: 12.x, 10.15.1, >=10.15.0 - node-version: 16 - # Used to specify a package manager for caching in the default directory. Supported values: npm, yarn, pnpm + node-version: ${{ matrix.node-version }} cache: npm - # Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc. Supports wildcards or a list of file names for caching multiple dependencies. cache-dependency-path: package-lock.json # Runs a single command using the runners shell - name: Install run: npm ci - - name: Build - run: npm run build - name: Test run: npm test - - name: Test E2E + - name: Install Playwright Browsers + run: npx playwright install --with-deps + - name: Run Playwright tests run: npm run test:e2e + - uses: actions/upload-artifact@v3 + if: always() + with: + name: playwright-report + path: playwright-report/ + retention-days: 30 diff --git a/.gitignore b/.gitignore index 6e85f7e66..2071f464f 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,7 @@ client/dist/index.js client/dist/index.js.map client/dist/index.min.js client/dist/index.min.js.map +node_modules/ +/test-results/ +/playwright-report/ +/playwright/.cache/ diff --git a/README.md b/README.md index eb6827c2c..89b6ea835 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,10 @@
-
+
+
+
Keep multiple browsers & devices in sync when building websites.
diff --git a/crossbow.yaml b/crossbow.yaml deleted file mode 100644 index bf7f6242d..000000000 --- a/crossbow.yaml +++ /dev/null @@ -1,31 +0,0 @@ -tasks: - cy: cypress/setup/bs.js - -options: - cy: - _default: - action: run - file-watching-ignore: - config: cypress/configs/file-watching-ignore.js - spec: cypress/integration/file-watching-ignore.js - file-reloading: - config: cypress/configs/file-reloading.js - spec: cypress/integration/file-reloading.js - no-notify: - config: cypress/configs/no-notify.js - spec: cypress/integration/no-notify.js - css-overlay: - config: cypress/configs/css-overlay-notify.js - spec: cypress/integration/css-overlay-notify.js - css-console-notify: - config: cypress/configs/css-console-notify.js - spec: cypress/integration/css-console-notify.js - connection-notify: - config: cypress/configs/file-reloading.js - spec: cypress/integration/connection-notify.js - log-prefix: - config: cypress/configs/logPrefix.js - spec: cypress/integration/logPrefix.js - ui-remote-debug: - config: cypress/configs/file-reloading.js - spec: cypress/integration/ui-remote-debug.js \ No newline at end of file diff --git a/cypress.json b/cypress.json deleted file mode 100644 index 60ed5aa53..000000000 --- a/cypress.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "video": false -} diff --git a/cypress/configs/css-console-notify.js b/cypress/configs/css-console-notify.js deleted file mode 100644 index ae26b4fe9..000000000 --- a/cypress/configs/css-console-notify.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = { - server: 'packages/browser-sync/test/fixtures', - open: false, - watch: true, - online: false, - // logLevel: 'silent', - minify: false, - injectNotification: 'console', - ghostMode: { - clicks: false, - } -}; diff --git a/cypress/configs/css-overlay-notify.js b/cypress/configs/css-overlay-notify.js deleted file mode 100644 index 43e990f2c..000000000 --- a/cypress/configs/css-overlay-notify.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = { - server: 'packages/browser-sync/test/fixtures', - open: false, - watch: true, - online: false, - logLevel: 'silent', - minify: false, - injectNotification: 'overlay' -}; diff --git a/cypress/configs/file-reloading.js b/cypress/configs/file-reloading.js deleted file mode 100644 index d8cf9ed30..000000000 --- a/cypress/configs/file-reloading.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - server: 'packages/browser-sync/test/fixtures', - open: false, - watch: true, - online: false, - // logLevel: 'silent', - minify: false, - // ghostMode: { scroll: true }, - // injectNotification: 'console' -}; diff --git a/cypress/configs/file-watching-ignore.js b/cypress/configs/file-watching-ignore.js deleted file mode 100644 index 69ecac467..000000000 --- a/cypress/configs/file-watching-ignore.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - server: 'packages/browser-sync/test/fixtures', - open: false, - online: false, - minify: false, - files: 'packages/browser-sync/test/fixtures', -}; diff --git a/cypress/configs/logPrefix.js b/cypress/configs/logPrefix.js deleted file mode 100644 index a0a92358d..000000000 --- a/cypress/configs/logPrefix.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - server: 'packages/browser-sync/test/fixtures', - open: false, - watch: true, - online: false, - logLevel: 'silent', - minify: false, - logPrefix: 'WSK', - injectNotification: 'console', -}; diff --git a/cypress/configs/no-notify.js b/cypress/configs/no-notify.js deleted file mode 100644 index d82a44cd9..000000000 --- a/cypress/configs/no-notify.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = { - server: 'packages/browser-sync/test/fixtures', - open: false, - watch: true, - online: false, - logLevel: 'silent', - minify: false, - notify: false, -}; diff --git a/cypress/fixtures/example.json b/cypress/fixtures/example.json deleted file mode 100644 index da18d9352..000000000 --- a/cypress/fixtures/example.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "Using fixtures to represent data", - "email": "hello@cypress.io", - "body": "Fixtures are a great way to mock data for responses to routes" -} \ No newline at end of file diff --git a/cypress/fixtures/profile.json b/cypress/fixtures/profile.json deleted file mode 100644 index b6c355ca5..000000000 --- a/cypress/fixtures/profile.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "id": 8739, - "name": "Jane", - "email": "jane@example.com" -} \ No newline at end of file diff --git a/cypress/fixtures/users.json b/cypress/fixtures/users.json deleted file mode 100644 index 79b699aa7..000000000 --- a/cypress/fixtures/users.json +++ /dev/null @@ -1,232 +0,0 @@ -[ - { - "id": 1, - "name": "Leanne Graham", - "username": "Bret", - "email": "Sincere@april.biz", - "address": { - "street": "Kulas Light", - "suite": "Apt. 556", - "city": "Gwenborough", - "zipcode": "92998-3874", - "geo": { - "lat": "-37.3159", - "lng": "81.1496" - } - }, - "phone": "1-770-736-8031 x56442", - "website": "hildegard.org", - "company": { - "name": "Romaguera-Crona", - "catchPhrase": "Multi-layered client-server neural-net", - "bs": "harness real-time e-markets" - } - }, - { - "id": 2, - "name": "Ervin Howell", - "username": "Antonette", - "email": "Shanna@melissa.tv", - "address": { - "street": "Victor Plains", - "suite": "Suite 879", - "city": "Wisokyburgh", - "zipcode": "90566-7771", - "geo": { - "lat": "-43.9509", - "lng": "-34.4618" - } - }, - "phone": "010-692-6593 x09125", - "website": "anastasia.net", - "company": { - "name": "Deckow-Crist", - "catchPhrase": "Proactive didactic contingency", - "bs": "synergize scalable supply-chains" - } - }, - { - "id": 3, - "name": "Clementine Bauch", - "username": "Samantha", - "email": "Nathan@yesenia.net", - "address": { - "street": "Douglas Extension", - "suite": "Suite 847", - "city": "McKenziehaven", - "zipcode": "59590-4157", - "geo": { - "lat": "-68.6102", - "lng": "-47.0653" - } - }, - "phone": "1-463-123-4447", - "website": "ramiro.info", - "company": { - "name": "Romaguera-Jacobson", - "catchPhrase": "Face to face bifurcated interface", - "bs": "e-enable strategic applications" - } - }, - { - "id": 4, - "name": "Patricia Lebsack", - "username": "Karianne", - "email": "Julianne.OConner@kory.org", - "address": { - "street": "Hoeger Mall", - "suite": "Apt. 692", - "city": "South Elvis", - "zipcode": "53919-4257", - "geo": { - "lat": "29.4572", - "lng": "-164.2990" - } - }, - "phone": "493-170-9623 x156", - "website": "kale.biz", - "company": { - "name": "Robel-Corkery", - "catchPhrase": "Multi-tiered zero tolerance productivity", - "bs": "transition cutting-edge web services" - } - }, - { - "id": 5, - "name": "Chelsey Dietrich", - "username": "Kamren", - "email": "Lucio_Hettinger@annie.ca", - "address": { - "street": "Skiles Walks", - "suite": "Suite 351", - "city": "Roscoeview", - "zipcode": "33263", - "geo": { - "lat": "-31.8129", - "lng": "62.5342" - } - }, - "phone": "(254)954-1289", - "website": "demarco.info", - "company": { - "name": "Keebler LLC", - "catchPhrase": "User-centric fault-tolerant solution", - "bs": "revolutionize end-to-end systems" - } - }, - { - "id": 6, - "name": "Mrs. Dennis Schulist", - "username": "Leopoldo_Corkery", - "email": "Karley_Dach@jasper.info", - "address": { - "street": "Norberto Crossing", - "suite": "Apt. 950", - "city": "South Christy", - "zipcode": "23505-1337", - "geo": { - "lat": "-71.4197", - "lng": "71.7478" - } - }, - "phone": "1-477-935-8478 x6430", - "website": "ola.org", - "company": { - "name": "Considine-Lockman", - "catchPhrase": "Synchronised bottom-line interface", - "bs": "e-enable innovative applications" - } - }, - { - "id": 7, - "name": "Kurtis Weissnat", - "username": "Elwyn.Skiles", - "email": "Telly.Hoeger@billy.biz", - "address": { - "street": "Rex Trail", - "suite": "Suite 280", - "city": "Howemouth", - "zipcode": "58804-1099", - "geo": { - "lat": "24.8918", - "lng": "21.8984" - } - }, - "phone": "210.067.6132", - "website": "elvis.io", - "company": { - "name": "Johns Group", - "catchPhrase": "Configurable multimedia task-force", - "bs": "generate enterprise e-tailers" - } - }, - { - "id": 8, - "name": "Nicholas Runolfsdottir V", - "username": "Maxime_Nienow", - "email": "Sherwood@rosamond.me", - "address": { - "street": "Ellsworth Summit", - "suite": "Suite 729", - "city": "Aliyaview", - "zipcode": "45169", - "geo": { - "lat": "-14.3990", - "lng": "-120.7677" - } - }, - "phone": "586.493.6943 x140", - "website": "jacynthe.com", - "company": { - "name": "Abernathy Group", - "catchPhrase": "Implemented secondary concept", - "bs": "e-enable extensible e-tailers" - } - }, - { - "id": 9, - "name": "Glenna Reichert", - "username": "Delphine", - "email": "Chaim_McDermott@dana.io", - "address": { - "street": "Dayna Park", - "suite": "Suite 449", - "city": "Bartholomebury", - "zipcode": "76495-3109", - "geo": { - "lat": "24.6463", - "lng": "-168.8889" - } - }, - "phone": "(775)976-6794 x41206", - "website": "conrad.com", - "company": { - "name": "Yost and Sons", - "catchPhrase": "Switchable contextually-based project", - "bs": "aggregate real-time technologies" - } - }, - { - "id": 10, - "name": "Clementina DuBuque", - "username": "Moriah.Stanton", - "email": "Rey.Padberg@karina.biz", - "address": { - "street": "Kattie Turnpike", - "suite": "Suite 198", - "city": "Lebsackbury", - "zipcode": "31428-2261", - "geo": { - "lat": "-38.2386", - "lng": "57.2232" - } - }, - "phone": "024-648-3804", - "website": "ambrose.net", - "company": { - "name": "Hoeger LLC", - "catchPhrase": "Centralized empowering task-force", - "bs": "target end-to-end models" - } - } -] \ No newline at end of file diff --git a/cypress/integration.backup/example_spec.js b/cypress/integration.backup/example_spec.js deleted file mode 100644 index ae2ace17c..000000000 --- a/cypress/integration.backup/example_spec.js +++ /dev/null @@ -1,1497 +0,0 @@ -// -// **** Kitchen Sink Tests **** -// -// This app was developed to demonstrate -// how to write tests in Cypress utilizing -// all of the available commands -// -// Feel free to modify this spec in your -// own application as a jumping off point - -// Please read our "Introduction to Cypress" -// https://on.cypress.io/introduction-to-cypress - -describe('Kitchen Sink', function () { - it('.should() - assert that