upgrade to Next.js 12 (#1109)
This commit is contained in:
parent
5a25e6daee
commit
265c634db9
8 changed files with 327 additions and 347 deletions
17
.github/workflows/e2e.yml
vendored
17
.github/workflows/e2e.yml
vendored
|
@ -51,7 +51,7 @@ jobs:
|
||||||
uses: actions/cache@v2
|
uses: actions/cache@v2
|
||||||
with:
|
with:
|
||||||
path: ${{ github.workspace }}/.next/cache
|
path: ${{ github.workspace }}/.next/cache
|
||||||
key: ${{ runner.os }}-nextjs
|
key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}-nextjs
|
||||||
|
|
||||||
- run: yarn test
|
- run: yarn test
|
||||||
- run: yarn prisma migrate deploy
|
- run: yarn prisma migrate deploy
|
||||||
|
@ -59,7 +59,20 @@ jobs:
|
||||||
- run: yarn build
|
- run: yarn build
|
||||||
- run: yarn start &
|
- run: yarn start &
|
||||||
- run: npx wait-port 3000 --timeout 10000
|
- run: npx wait-port 3000 --timeout 10000
|
||||||
- run: yarn playwright install-deps
|
|
||||||
|
- name: Cache playwright binaries
|
||||||
|
uses: actions/cache@v2
|
||||||
|
id: playwright-cache
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/Library/Caches/ms-playwright
|
||||||
|
~/.cache/ms-playwright
|
||||||
|
**/node_modules/playwright
|
||||||
|
key: cache-playwright-${{ hashFiles('**/yarn.lock') }}
|
||||||
|
- name: Install playwright deps
|
||||||
|
if: steps.playwright-cache.outputs.cache-hit != 'true'
|
||||||
|
run: yarn playwright install-deps
|
||||||
|
|
||||||
- run: yarn test-playwright
|
- run: yarn test-playwright
|
||||||
|
|
||||||
- name: Upload videos
|
- name: Upload videos
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
module.exports = function (api) {
|
|
||||||
api.cache(true);
|
|
||||||
const plugins = [];
|
|
||||||
if (process.env.NODE_ENV === "development" || process.env.NODE_ENV === "test") {
|
|
||||||
console.log("------ 💯 Adding test coverage support 💯 ------");
|
|
||||||
plugins.push("istanbul");
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
|
||||||
presets: ["next/babel"],
|
|
||||||
plugins,
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -1,7 +1,7 @@
|
||||||
const opts = {
|
const opts = {
|
||||||
// launch headless on CI, in browser locally
|
// launch headless on CI, in browser locally
|
||||||
headless: !!process.env.CI || !!process.env.PLAYWRIGHT_HEADLESS,
|
headless: !!process.env.CI || !!process.env.PLAYWRIGHT_HEADLESS,
|
||||||
collectCoverage: !!process.env.PLAYWRIGHT_HEADLESS,
|
collectCoverage: false, // not possible in Next.js 12
|
||||||
executablePath: process.env.PLAYWRIGHT_CHROME_EXECUTABLE_PATH,
|
executablePath: process.env.PLAYWRIGHT_CHROME_EXECUTABLE_PATH,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* eslint-disable @typescript-eslint/no-var-requires */
|
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||||
const withTM = require("next-transpile-modules")(["react-timezone-select"]);
|
const withTM = require("@vercel/edge-functions-ui/transpile")(["react-timezone-select"]);
|
||||||
const { i18n } = require("./next-i18next.config");
|
const { i18n } = require("./next-i18next.config");
|
||||||
|
|
||||||
// So we can test deploy previews preview
|
// So we can test deploy previews preview
|
||||||
|
|
17
package.json
17
package.json
|
@ -14,7 +14,6 @@
|
||||||
"dx": "cross-env BASE_URL=http://localhost:3000 JWT_SECRET=secret DATABASE_URL=postgresql://postgres:@localhost:5450/calendso run-s db-up db-migrate db-seed dev",
|
"dx": "cross-env BASE_URL=http://localhost:3000 JWT_SECRET=secret DATABASE_URL=postgresql://postgres:@localhost:5450/calendso run-s db-up db-migrate db-seed dev",
|
||||||
"test": "jest",
|
"test": "jest",
|
||||||
"test-playwright": "jest --config jest.playwright.config.js",
|
"test-playwright": "jest --config jest.playwright.config.js",
|
||||||
"test-playwright-lcov": "cross-env PLAYWRIGHT_HEADLESS=1 PLAYWRIGHT_COVERAGE=1 yarn test-playwright && nyc report --reporter=lcov",
|
|
||||||
"test-codegen": "yarn playwright codegen http://localhost:3000",
|
"test-codegen": "yarn playwright codegen http://localhost:3000",
|
||||||
"type-check": "tsc --pretty --noEmit",
|
"type-check": "tsc --pretty --noEmit",
|
||||||
"build": "next build",
|
"build": "next build",
|
||||||
|
@ -53,6 +52,7 @@
|
||||||
"@trpc/next": "^9.10.1",
|
"@trpc/next": "^9.10.1",
|
||||||
"@trpc/react": "^9.10.1",
|
"@trpc/react": "^9.10.1",
|
||||||
"@trpc/server": "^9.10.1",
|
"@trpc/server": "^9.10.1",
|
||||||
|
"@vercel/edge-functions-ui": "^0.2.1",
|
||||||
"@wojtekmaj/react-daterange-picker": "^3.3.1",
|
"@wojtekmaj/react-daterange-picker": "^3.3.1",
|
||||||
"accept-language-parser": "^1.5.0",
|
"accept-language-parser": "^1.5.0",
|
||||||
"async": "^3.2.1",
|
"async": "^3.2.1",
|
||||||
|
@ -67,11 +67,11 @@
|
||||||
"jimp": "^0.16.1",
|
"jimp": "^0.16.1",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"micro": "^9.3.4",
|
"micro": "^9.3.4",
|
||||||
"next": "^11.1.1",
|
"next": "^12.0.2",
|
||||||
"next-auth": "^3.28.0",
|
"next-auth": "^3.29.0",
|
||||||
"next-i18next": "^8.8.0",
|
"next-i18next": "^8.9.0",
|
||||||
"next-seo": "^4.26.0",
|
"next-seo": "^4.26.0",
|
||||||
"next-transpile-modules": "^8.0.0",
|
"next-transpile-modules": "^9.0.0",
|
||||||
"nodemailer": "^6.6.3",
|
"nodemailer": "^6.6.3",
|
||||||
"otplib": "^12.0.1",
|
"otplib": "^12.0.1",
|
||||||
"qrcode": "^1.4.4",
|
"qrcode": "^1.4.4",
|
||||||
|
@ -86,7 +86,7 @@
|
||||||
"react-query": "^3.30.0",
|
"react-query": "^3.30.0",
|
||||||
"react-router-dom": "^5.2.0",
|
"react-router-dom": "^5.2.0",
|
||||||
"react-select": "^4.3.1",
|
"react-select": "^4.3.1",
|
||||||
"react-timezone-select": "^1.1.12",
|
"react-timezone-select": "^1.1.13",
|
||||||
"react-use-intercom": "1.4.0",
|
"react-use-intercom": "1.4.0",
|
||||||
"short-uuid": "^4.2.0",
|
"short-uuid": "^4.2.0",
|
||||||
"stripe": "^8.168.0",
|
"stripe": "^8.168.0",
|
||||||
|
@ -116,9 +116,7 @@
|
||||||
"@typescript-eslint/eslint-plugin": "^4.33.0",
|
"@typescript-eslint/eslint-plugin": "^4.33.0",
|
||||||
"@typescript-eslint/parser": "^4.29.2",
|
"@typescript-eslint/parser": "^4.29.2",
|
||||||
"autoprefixer": "^10.3.1",
|
"autoprefixer": "^10.3.1",
|
||||||
"babel": "^6.23.0",
|
"babel-jest": "^27.3.1",
|
||||||
"babel-jest": "^27.2.4",
|
|
||||||
"babel-plugin-istanbul": "^6.1.1",
|
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"eslint": "^7.32.0",
|
"eslint": "^7.32.0",
|
||||||
"eslint-config-prettier": "^8.3.0",
|
"eslint-config-prettier": "^8.3.0",
|
||||||
|
@ -133,7 +131,6 @@
|
||||||
"lint-staged": "^11.1.2",
|
"lint-staged": "^11.1.2",
|
||||||
"mockdate": "^3.0.5",
|
"mockdate": "^3.0.5",
|
||||||
"npm-run-all": "^4.1.5",
|
"npm-run-all": "^4.1.5",
|
||||||
"nyc": "^15.1.0",
|
|
||||||
"playwright": "^1.16.2",
|
"playwright": "^1.16.2",
|
||||||
"postcss": "^8.3.11",
|
"postcss": "^8.3.11",
|
||||||
"prettier": "^2.3.2",
|
"prettier": "^2.3.2",
|
||||||
|
|
|
@ -69,7 +69,7 @@ describe("webhooks", () => {
|
||||||
body.payload.uid = dynamic;
|
body.payload.uid = dynamic;
|
||||||
|
|
||||||
// if we change the shape of our webhooks, we can simply update this by clicking `u`
|
// if we change the shape of our webhooks, we can simply update this by clicking `u`
|
||||||
console.log("BODY", body);
|
// console.log("BODY", body);
|
||||||
expect(body).toMatchInlineSnapshot(`
|
expect(body).toMatchInlineSnapshot(`
|
||||||
Object {
|
Object {
|
||||||
"createdAt": "[redacted/dynamic]",
|
"createdAt": "[redacted/dynamic]",
|
||||||
|
|
21
playwright/login.test.ts
Normal file
21
playwright/login.test.ts
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
jest.setTimeout(60e3);
|
||||||
|
|
||||||
|
test("login with pro@example.com", async () => {
|
||||||
|
const context = await browser.newContext();
|
||||||
|
const page = await context.newPage();
|
||||||
|
await page.goto("http://localhost:3000/auth/login");
|
||||||
|
// Click input[name="email"]
|
||||||
|
await page.click('input[name="email"]');
|
||||||
|
// Fill input[name="email"]
|
||||||
|
await page.fill('input[name="email"]', `pro@example.com`);
|
||||||
|
// Press Tab
|
||||||
|
await page.press('input[name="email"]', "Tab");
|
||||||
|
// Fill input[name="password"]
|
||||||
|
await page.fill('input[name="password"]', `pro`);
|
||||||
|
// Press Enter
|
||||||
|
await page.press('input[name="password"]', "Enter");
|
||||||
|
|
||||||
|
await page.waitForSelector("[data-testid=event-types]");
|
||||||
|
});
|
||||||
|
|
||||||
|
export {};
|
Loading…
Reference in a new issue