diff --git a/.env.sample b/.env.sample new file mode 100644 index 000000000..a34939eb4 --- /dev/null +++ b/.env.sample @@ -0,0 +1 @@ +BASEURL="http://example.com" diff --git a/.gitignore b/.gitignore index 8fa78b2c6..009d9c219 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,6 @@ modules/ppcp-wc-gateway/assets/css .env .env.e2e auth.json +/test-results/ +/playwright-report/ +/tests/playwright/.cache/ diff --git a/package.json b/package.json index 1fa2df72e..16effe908 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,6 @@ "author": "WooCommerce", "scripts": { "postinstall": "run-s install:modules:* && run-s build:modules", - "install:modules:ppcp-button": "cd modules/ppcp-button && yarn install", "install:modules:ppcp-wc-gateway": "cd modules/ppcp-wc-gateway && yarn install", "install:modules:ppcp-webhooks": "cd modules/ppcp-webhooks && yarn install", @@ -16,7 +15,6 @@ "install:modules:ppcp-onboarding": "cd modules/ppcp-onboarding && yarn install", "install:modules:ppcp-compat": "cd modules/ppcp-compat && yarn install", "install:modules:ppcp-uninstall": "cd modules/ppcp-uninstall && yarn install", - "build:modules:ppcp-button": "cd modules/ppcp-button && yarn run build", "build:modules:ppcp-wc-gateway": "cd modules/ppcp-wc-gateway && yarn run build", "build:modules:ppcp-webhooks": "cd modules/ppcp-webhooks && yarn run build", @@ -26,7 +24,6 @@ "build:modules:ppcp-compat": "cd modules/ppcp-compat && yarn run build", "build:modules:ppcp-uninstall": "cd modules/ppcp-uninstall && yarn run build", "build:modules": "run-p build:modules:*", - "watch:modules:ppcp-button": "cd modules/ppcp-button && yarn run watch", "watch:modules:ppcp-wc-gateway": "cd modules/ppcp-wc-gateway && yarn run watch", "watch:modules:ppcp-webhooks": "cd modules/ppcp-webhooks && yarn run watch", @@ -36,7 +33,6 @@ "watch:modules:ppcp-compat": "cd modules/ppcp-compat && yarn run watch", "watch:modules:ppcp-uninstall": "cd modules/ppcp-uninstall && yarn run watch", "watch:modules": "run-p watch:modules:*", - "ddev:setup": "ddev start && ddev orchestrate", "ddev:start": "ddev start", "ddev:stop": "ddev stop", @@ -55,7 +51,6 @@ "ddev:xdebug-on": "ddev xdebug", "ddev:xdebug-off": "ddev xdebug", "ddev:build-package": "ddev yarn build", - "prebuild": "rm -rf ./vendor && find . -name 'node_modules' -type d -maxdepth 3 -exec rm -rf {} +", "build": "composer install --no-dev && yarn install && yarn run archive", "prearchive": "rm -rf $npm_package_name.zip", @@ -67,7 +62,10 @@ "wp_org_slug": "woocommerce-paypal-payments" }, "dependencies": { + "dotenv": "^16.0.3", "npm-run-all": "^4.1.5" }, - "devDependencies": {} + "devDependencies": { + "@playwright/test": "^1.31.1" + } } diff --git a/playwright.config.js b/playwright.config.js new file mode 100644 index 000000000..b2a2d5a08 --- /dev/null +++ b/playwright.config.js @@ -0,0 +1,14 @@ +/** + * Read environment variables from file. + * https://github.com/motdotla/dotenv + */ +require('dotenv').config(); + +const config = { + timeout: 30000, + use: { + baseURL: process.env.BASEURL, + }, +}; + +module.exports = config; diff --git a/tests/playwright/example.spec.js b/tests/playwright/example.spec.js new file mode 100644 index 000000000..903559648 --- /dev/null +++ b/tests/playwright/example.spec.js @@ -0,0 +1,6 @@ +const { test, expect } = require('@playwright/test'); + +test('has ngrok url', async ({page, baseURL}) => { + await page.goto('/'); + await expect(page).toHaveURL(baseURL); +}); diff --git a/yarn.lock b/yarn.lock index 862d1ba46..89ead66f1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,21 @@ # yarn lockfile v1 +"@playwright/test@^1.31.1": + version "1.31.1" + resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.31.1.tgz#39d6873dc46af135f12451d79707db7d1357455d" + integrity sha512-IsytVZ+0QLDh1Hj83XatGp/GsI1CDJWbyDaBGbainsh0p2zC7F4toUocqowmjS6sQff2NGT3D9WbDj/3K2CJiA== + dependencies: + "@types/node" "*" + playwright-core "1.31.1" + optionalDependencies: + fsevents "2.3.2" + +"@types/node@*": + version "18.14.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.1.tgz#90dad8476f1e42797c49d6f8b69aaf9f876fc69f" + integrity sha512-QH+37Qds3E0eDlReeboBxfHbX9omAcBCXEzswCu6jySP642jiM3cYSIkU/REqwhCUqXdonHFuBfJDiAJxMNhaQ== + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -75,6 +90,11 @@ define-properties@^1.1.3, define-properties@^1.1.4: has-property-descriptors "^1.0.0" object-keys "^1.1.1" +dotenv@^16.0.3: + version "16.0.3" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" + integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -126,6 +146,11 @@ escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== +fsevents@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -422,6 +447,11 @@ pify@^3.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== +playwright-core@1.31.1: + version "1.31.1" + resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.31.1.tgz#4deeebbb8fb73b512593fe24bea206d8fd85ff7f" + integrity sha512-JTyX4kV3/LXsvpHkLzL2I36aCdml4zeE35x+G5aPc4bkLsiRiQshU5lWeVpHFAuC8xAcbI6FDcw/8z3q2xtJSQ== + read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"