From 46754256987fd8619ce446d7ef921511a5dad6de Mon Sep 17 00:00:00 2001 From: Jinma Yamashita <9401060+jinmayamashita@users.noreply.github.com> Date: Mon, 23 Jan 2023 17:38:20 +0900 Subject: [PATCH 1/9] create-pr From b40228da848fc8a35573f9d0ef6167bf911bfd10 Mon Sep 17 00:00:00 2001 From: Jinma Yamashita <9401060+jinmayamashita@users.noreply.github.com> Date: Mon, 23 Jan 2023 18:31:17 +0900 Subject: [PATCH 2/9] e2e testing to package --- .gitignore | 3 + .../create-codes/templates/react/package.json | 3 - .../__tests__/react}/Count.test.ts | 0 .../__tests__/react}/Employee.test.ts | 0 .../__tests__/react}/Home.test.ts | 0 .../__tests__/react}/Login.test.ts | 0 .../__tests__/react}/Profile.test.ts | 0 .../__tests__}/utils/global-setup.ts | 2 +- packages/e2e-testing/package.json | 17 ++ .../playwright.config.ts | 18 +- packages/e2e-testing/tsconfig.json | 7 + pnpm-lock.yaml | 236 ++++++++++++++++-- turbo.json | 1 + 13 files changed, 258 insertions(+), 29 deletions(-) rename packages/{create-codes/templates/react/tests/e2e => e2e-testing/__tests__/react}/Count.test.ts (100%) rename packages/{create-codes/templates/react/tests/e2e => e2e-testing/__tests__/react}/Employee.test.ts (100%) rename packages/{create-codes/templates/react/tests/e2e => e2e-testing/__tests__/react}/Home.test.ts (100%) rename packages/{create-codes/templates/react/tests/e2e => e2e-testing/__tests__/react}/Login.test.ts (100%) rename packages/{create-codes/templates/react/tests/e2e => e2e-testing/__tests__/react}/Profile.test.ts (100%) rename packages/{create-codes/templates/react/tests/e2e => e2e-testing/__tests__}/utils/global-setup.ts (90%) create mode 100644 packages/e2e-testing/package.json rename packages/{create-codes/templates/react => e2e-testing}/playwright.config.ts (54%) create mode 100644 packages/e2e-testing/tsconfig.json diff --git a/.gitignore b/.gitignore index 9aa66931..d54574ef 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,6 @@ build # misc .DS_Store *.pem + +# e2e storage state +packages/e2e-testing/__tests__/utils/storageState.json diff --git a/packages/create-codes/templates/react/package.json b/packages/create-codes/templates/react/package.json index 5c0f57b7..baf16b33 100644 --- a/packages/create-codes/templates/react/package.json +++ b/packages/create-codes/templates/react/package.json @@ -12,7 +12,6 @@ "build": "tsc && vite build", "lint": "eslint . --ext .js,jsx,.ts,.tsx", "preview": "vite preview", - "e2e": "playwright test", "test": "jest", "test:coverage": "jest --coverage", "type": "tsc --noEmit" @@ -22,11 +21,9 @@ "@babel/preset-env": "7.20.2", "@babel/preset-react": "7.18.6", "@babel/preset-typescript": "7.18.6", - "@playwright/test": "1.29.2", "@testing-library/jest-dom": "5.16.5", "@testing-library/react": "13.4.0", "@testing-library/user-event": "14.4.3", - "@types/node": "18.11.18", "@types/react": "18.0.27", "@types/react-dom": "18.0.10", "@typescript-eslint/eslint-plugin": "5.48.2", diff --git a/packages/create-codes/templates/react/tests/e2e/Count.test.ts b/packages/e2e-testing/__tests__/react/Count.test.ts similarity index 100% rename from packages/create-codes/templates/react/tests/e2e/Count.test.ts rename to packages/e2e-testing/__tests__/react/Count.test.ts diff --git a/packages/create-codes/templates/react/tests/e2e/Employee.test.ts b/packages/e2e-testing/__tests__/react/Employee.test.ts similarity index 100% rename from packages/create-codes/templates/react/tests/e2e/Employee.test.ts rename to packages/e2e-testing/__tests__/react/Employee.test.ts diff --git a/packages/create-codes/templates/react/tests/e2e/Home.test.ts b/packages/e2e-testing/__tests__/react/Home.test.ts similarity index 100% rename from packages/create-codes/templates/react/tests/e2e/Home.test.ts rename to packages/e2e-testing/__tests__/react/Home.test.ts diff --git a/packages/create-codes/templates/react/tests/e2e/Login.test.ts b/packages/e2e-testing/__tests__/react/Login.test.ts similarity index 100% rename from packages/create-codes/templates/react/tests/e2e/Login.test.ts rename to packages/e2e-testing/__tests__/react/Login.test.ts diff --git a/packages/create-codes/templates/react/tests/e2e/Profile.test.ts b/packages/e2e-testing/__tests__/react/Profile.test.ts similarity index 100% rename from packages/create-codes/templates/react/tests/e2e/Profile.test.ts rename to packages/e2e-testing/__tests__/react/Profile.test.ts diff --git a/packages/create-codes/templates/react/tests/e2e/utils/global-setup.ts b/packages/e2e-testing/__tests__/utils/global-setup.ts similarity index 90% rename from packages/create-codes/templates/react/tests/e2e/utils/global-setup.ts rename to packages/e2e-testing/__tests__/utils/global-setup.ts index 9af59e61..4322eee1 100644 --- a/packages/create-codes/templates/react/tests/e2e/utils/global-setup.ts +++ b/packages/e2e-testing/__tests__/utils/global-setup.ts @@ -15,7 +15,7 @@ const globalSetup = async (_config: FullConfig) => { // Save signed-in state to 'storageState.json'. await page .context() - .storageState({ path: "./tests/e2e/utils/storageState.json" }); + .storageState({ path: "./__tests__/utils/storageState.json" }); await browser.close(); }; diff --git a/packages/e2e-testing/package.json b/packages/e2e-testing/package.json new file mode 100644 index 00000000..d7b2ecb4 --- /dev/null +++ b/packages/e2e-testing/package.json @@ -0,0 +1,17 @@ +{ + "name": "e2e-testing", + "private": true, + "scripts": { + "e2e:dev": "playwright test" + }, + "dependencies": { + "@playwright/test": "1.29.2" + }, + "devDependencies": { + "start-server-and-test": "1.15.2", + "reactjs-boilerplate": "workspace:*", + "tsconfig": "workspace:*", + "typescript": "4.9.4", + "@types/node": "18.11.18" + } +} diff --git a/packages/create-codes/templates/react/playwright.config.ts b/packages/e2e-testing/playwright.config.ts similarity index 54% rename from packages/create-codes/templates/react/playwright.config.ts rename to packages/e2e-testing/playwright.config.ts index 18d63334..733225cd 100644 --- a/packages/create-codes/templates/react/playwright.config.ts +++ b/packages/e2e-testing/playwright.config.ts @@ -2,24 +2,22 @@ import { type PlaywrightTestConfig, devices } from "@playwright/test"; const config: PlaywrightTestConfig = { forbidOnly: !!process.env.CI, - testDir: "./tests/e2e", - webServer: { - command: "yarn dev", - port: 3000, - }, + testDir: "__tests__", retries: process.env.CI ? 2 : 0, - globalSetup: require.resolve("./tests/e2e/utils/global-setup"), + globalSetup: require.resolve("./__tests__/utils/global-setup"), use: { headless: !!process.env.CI, - baseURL: "http://localhost:3000/", // Tell all tests to load signed-in state from 'storageState.json'. - storageState: "./tests/e2e/utils/storageState.json", + storageState: "./__tests__/utils/storageState.json", trace: "on-first-retry", }, projects: [ { - name: "chromium", - use: { ...devices["Desktop Chrome"] }, + name: "react", + use: { + baseURL: "http://localhost:3000", + ...devices["Desktop Chrome"], + }, }, ], }; diff --git a/packages/e2e-testing/tsconfig.json b/packages/e2e-testing/tsconfig.json new file mode 100644 index 00000000..d38e7472 --- /dev/null +++ b/packages/e2e-testing/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "tsconfig/library.json", + "compilerOptions": { + "rootDir": "." + }, + "include": ["playwright.config.ts", "__tests__"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f27840ed..203aa064 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,12 +47,10 @@ importers: '@babel/preset-env': 7.20.2 '@babel/preset-react': 7.18.6 '@babel/preset-typescript': 7.18.6 - '@playwright/test': 1.29.2 '@tanstack/react-query': 4.22.0 '@testing-library/jest-dom': 5.16.5 '@testing-library/react': 13.4.0 '@testing-library/user-event': 14.4.3 - '@types/node': 18.11.18 '@types/react': 18.0.27 '@types/react-dom': 18.0.10 '@typescript-eslint/eslint-plugin': 5.48.2 @@ -95,11 +93,9 @@ importers: '@babel/preset-env': 7.20.2_@babel+core@7.20.12 '@babel/preset-react': 7.18.6_@babel+core@7.20.12 '@babel/preset-typescript': 7.18.6_@babel+core@7.20.12 - '@playwright/test': 1.29.2 '@testing-library/jest-dom': 5.16.5 '@testing-library/react': 13.4.0_biqbaboplfbrettd7655fr4n2y '@testing-library/user-event': 14.4.3_yxlyej73nftwmh2fiao7paxmlm - '@types/node': 18.11.18 '@types/react': 18.0.27 '@types/react-dom': 18.0.10 '@typescript-eslint/eslint-plugin': 5.48.2_z274t7mj3d3d3lkbtjv4yganzm @@ -109,15 +105,32 @@ importers: eslint: 8.31.0 eslint-plugin-react: 7.32.1_eslint@8.31.0 identity-obj-proxy: 3.0.0 - jest: 29.3.1_@types+node@18.11.18 + jest: 29.3.1 jest-environment-jsdom: 29.3.1 jest-serializer-html: 7.1.0 msw: 0.49.2_typescript@4.9.4 sass: 1.57.1 typescript: 4.9.4 - vite: 4.0.4_ovmyjmuuyckt3r3gpaexj2onji + vite: 4.0.4_sass@1.57.1 whatwg-fetch: 3.6.2 + packages/e2e-testing: + specifiers: + '@playwright/test': 1.29.2 + '@types/node': 18.11.18 + reactjs-boilerplate: workspace:* + start-server-and-test: 1.15.2 + tsconfig: workspace:* + typescript: 4.9.4 + dependencies: + '@playwright/test': 1.29.2 + devDependencies: + '@types/node': 18.11.18 + reactjs-boilerplate: link:../create-codes/templates/react + start-server-and-test: 1.15.2 + tsconfig: link:../tsconfig + typescript: 4.9.4 + packages/eslint-config-custom: specifiers: '@typescript-eslint/parser': 5.48.2 @@ -1664,6 +1677,16 @@ packages: transitivePeerDependencies: - supports-color + /@hapi/hoek/9.3.0: + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + dev: true + + /@hapi/topo/5.1.0: + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + dependencies: + '@hapi/hoek': 9.3.0 + dev: true + /@humanwhocodes/config-array/0.11.8: resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} engines: {node: '>=10.10.0'} @@ -2008,6 +2031,20 @@ packages: dependencies: '@types/node': 18.11.18 playwright-core: 1.29.2 + dev: false + + /@sideway/address/4.1.4: + resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==} + dependencies: + '@hapi/hoek': 9.3.0 + dev: true + + /@sideway/formula/3.0.1: + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + dev: true + + /@sideway/pinpoint/2.0.0: + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} dev: true /@sinclair/typebox/0.24.51: @@ -2257,7 +2294,6 @@ packages: /@types/node/18.11.18: resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==} - dev: true /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -2464,7 +2500,7 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.19.6_@babel+core@7.20.12 magic-string: 0.27.0 react-refresh: 0.14.0 - vite: 4.0.4_ovmyjmuuyckt3r3gpaexj2onji + vite: 4.0.4_sass@1.57.1 transitivePeerDependencies: - supports-color dev: true @@ -2723,6 +2759,10 @@ packages: picomatch: 2.3.1 dev: true + /arg/5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: true + /argparse/1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: @@ -2791,6 +2831,14 @@ packages: engines: {node: '>= 0.4'} dev: true + /axios/0.25.0_debug@4.3.4: + resolution: {integrity: sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==} + dependencies: + follow-redirects: 1.15.2_debug@4.3.4 + transitivePeerDependencies: + - debug + dev: true + /babel-jest/29.3.1_@babel+core@7.20.12: resolution: {integrity: sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2930,6 +2978,10 @@ packages: inherits: 2.0.4 readable-stream: 3.6.0 + /bluebird/3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + dev: true + /brace-expansion/1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -3073,6 +3125,11 @@ packages: resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} dev: true + /check-more-types/2.24.0: + resolution: {integrity: sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==} + engines: {node: '>= 0.8.0'} + dev: true + /chokidar/3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} @@ -3420,6 +3477,10 @@ packages: domelementtype: 1.3.1 dev: true + /duplexer/0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + dev: true + /electron-to-chromium/1.4.284: resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} dev: true @@ -3969,6 +4030,18 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} + /event-stream/3.3.4: + resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==} + dependencies: + duplexer: 0.1.2 + from: 0.1.7 + map-stream: 0.1.0 + pause-stream: 0.0.11 + split: 0.3.3 + stream-combiner: 0.0.4 + through: 2.3.8 + dev: true + /events/3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} @@ -4094,6 +4167,18 @@ packages: /flatted/3.2.7: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + /follow-redirects/1.15.2_debug@4.3.4: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dependencies: + debug: 4.3.4 + dev: true + /for-each/0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: @@ -4109,6 +4194,10 @@ packages: mime-types: 2.1.35 dev: true + /from/0.1.7: + resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} + dev: true + /fs-extra/11.1.0: resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==} engines: {node: '>=14.14'} @@ -4783,7 +4872,7 @@ packages: - supports-color dev: true - /jest-cli/29.3.1_@types+node@18.11.18: + /jest-cli/29.3.1: resolution: {integrity: sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -4800,7 +4889,7 @@ packages: exit: 0.1.2 graceful-fs: 4.2.10 import-local: 3.1.0 - jest-config: 29.3.1_@types+node@18.11.18 + jest-config: 29.3.1 jest-util: 29.3.1 jest-validate: 29.3.1 prompts: 2.4.2 @@ -4811,6 +4900,44 @@ packages: - ts-node dev: true + /jest-config/29.3.1: + resolution: {integrity: sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': 7.20.12 + '@jest/test-sequencer': 29.3.1 + '@jest/types': 29.3.1 + babel-jest: 29.3.1_@babel+core@7.20.12 + chalk: 4.1.2 + ci-info: 3.7.1 + deepmerge: 4.2.2 + glob: 7.2.3 + graceful-fs: 4.2.10 + jest-circus: 29.3.1 + jest-environment-node: 29.3.1 + jest-get-type: 29.2.0 + jest-regex-util: 29.2.0 + jest-resolve: 29.3.1 + jest-runner: 29.3.1 + jest-util: 29.3.1 + jest-validate: 29.3.1 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 29.3.1 + slash: 3.0.0 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + /jest-config/29.3.1_@types+node@18.11.18: resolution: {integrity: sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5175,7 +5302,7 @@ packages: supports-color: 8.1.1 dev: true - /jest/29.3.1_@types+node@18.11.18: + /jest/29.3.1: resolution: {integrity: sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -5188,13 +5315,23 @@ packages: '@jest/core': 29.3.1 '@jest/types': 29.3.1 import-local: 3.1.0 - jest-cli: 29.3.1_@types+node@18.11.18 + jest-cli: 29.3.1 transitivePeerDependencies: - '@types/node' - supports-color - ts-node dev: true + /joi/17.7.0: + resolution: {integrity: sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==} + dependencies: + '@hapi/hoek': 9.3.0 + '@hapi/topo': 5.1.0 + '@sideway/address': 4.1.4 + '@sideway/formula': 3.0.1 + '@sideway/pinpoint': 2.0.0 + dev: true + /joycon/3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} @@ -5326,6 +5463,11 @@ packages: engines: {node: '>=6'} dev: true + /lazy-ass/1.6.0: + resolution: {integrity: sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==} + engines: {node: '> 0.8'} + dev: true + /leven/3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} @@ -5461,6 +5603,10 @@ packages: engines: {node: '>=8'} dev: false + /map-stream/0.1.0: + resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} + dev: true + /meow/7.1.1: resolution: {integrity: sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==} engines: {node: '>=10'} @@ -5527,6 +5673,10 @@ packages: kind-of: 6.0.3 dev: false + /minimist/1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + dev: true + /mlly/1.1.0: resolution: {integrity: sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ==} dependencies: @@ -5854,6 +6004,12 @@ packages: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} dev: true + /pause-stream/0.0.11: + resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} + dependencies: + through: 2.3.8 + dev: true + /picocolors/1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: true @@ -5886,7 +6042,7 @@ packages: resolution: {integrity: sha512-94QXm4PMgFoHAhlCuoWyaBYKb92yOcGVHdQLoxQ7Wjlc7Flg4aC/jbFW7xMR52OfXMVkWicue4WXE7QEegbIRA==} engines: {node: '>=14'} hasBin: true - dev: true + dev: false /postcss-load-config/3.1.4: resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} @@ -5956,6 +6112,14 @@ packages: react-is: 16.13.1 dev: true + /ps-tree/1.2.0: + resolution: {integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==} + engines: {node: '>= 0.10'} + hasBin: true + dependencies: + event-stream: 3.3.4 + dev: true + /psl/1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} dev: true @@ -6399,6 +6563,12 @@ packages: resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} dev: false + /split/0.3.3: + resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==} + dependencies: + through: 2.3.8 + dev: true + /sprintf-js/1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true @@ -6414,6 +6584,23 @@ packages: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true + /start-server-and-test/1.15.2: + resolution: {integrity: sha512-t5xJX04Hg7hqxiKHMJBz/n4zIMsE6G7hpAcerFAH+4Vh9le/LeyFcJERJM7WLiPygWF9TOg33oroJF1XOzJtYQ==} + engines: {node: '>=6'} + hasBin: true + dependencies: + arg: 5.0.2 + bluebird: 3.7.2 + check-more-types: 2.24.0 + debug: 4.3.4 + execa: 5.1.1 + lazy-ass: 1.6.0 + ps-tree: 1.2.0 + wait-on: 6.0.1_debug@4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + /stop-iteration-iterator/1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} engines: {node: '>= 0.4'} @@ -6421,6 +6608,12 @@ packages: internal-slot: 1.0.4 dev: true + /stream-combiner/0.0.4: + resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} + dependencies: + duplexer: 0.1.2 + dev: true + /strict-event-emitter/0.2.8: resolution: {integrity: sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==} dependencies: @@ -7031,7 +7224,7 @@ packages: fsevents: 2.3.2 dev: true - /vite/4.0.4_ovmyjmuuyckt3r3gpaexj2onji: + /vite/4.0.4_sass@1.57.1: resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -7056,7 +7249,6 @@ packages: terser: optional: true dependencies: - '@types/node': 18.11.18 esbuild: 0.16.17 postcss: 8.4.21 resolve: 1.22.1 @@ -7127,6 +7319,20 @@ packages: xml-name-validator: 4.0.0 dev: true + /wait-on/6.0.1_debug@4.3.4: + resolution: {integrity: sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==} + engines: {node: '>=10.0.0'} + hasBin: true + dependencies: + axios: 0.25.0_debug@4.3.4 + joi: 17.7.0 + lodash: 4.17.21 + minimist: 1.2.7 + rxjs: 7.8.0 + transitivePeerDependencies: + - debug + dev: true + /walker/1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} dependencies: diff --git a/turbo.json b/turbo.json index d154ecd0..7b27e55c 100644 --- a/turbo.json +++ b/turbo.json @@ -1,5 +1,6 @@ { "$schema": "https://turbo.build/schema.json", + "globalEnv": ["CI"], "pipeline": { "build": { "dependsOn": ["^build"] From fb40f92bd6221ac7e42764833bf623516955c045 Mon Sep 17 00:00:00 2001 From: Jinma Yamashita <9401060+jinmayamashita@users.noreply.github.com> Date: Mon, 23 Jan 2023 21:57:24 +0900 Subject: [PATCH 3/9] static port --- packages/create-codes/templates/react/package.json | 4 ++-- packages/create-codes/templates/react/vite.config.ts | 3 --- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/create-codes/templates/react/package.json b/packages/create-codes/templates/react/package.json index baf16b33..72dbd76e 100644 --- a/packages/create-codes/templates/react/package.json +++ b/packages/create-codes/templates/react/package.json @@ -8,10 +8,10 @@ "node": ">=16.x" }, "scripts": { - "dev": "vite", + "dev": "vite --port 3000", "build": "tsc && vite build", "lint": "eslint . --ext .js,jsx,.ts,.tsx", - "preview": "vite preview", + "preview": "vite preview --port 3000", "test": "jest", "test:coverage": "jest --coverage", "type": "tsc --noEmit" diff --git a/packages/create-codes/templates/react/vite.config.ts b/packages/create-codes/templates/react/vite.config.ts index ce90ce4c..20ab30ed 100644 --- a/packages/create-codes/templates/react/vite.config.ts +++ b/packages/create-codes/templates/react/vite.config.ts @@ -11,7 +11,4 @@ export default defineConfig({ }, }, plugins: [react()], - server: { - port: 3000, - }, }); From 218131279e7d65bc852355aa18914948bcc2b136 Mon Sep 17 00:00:00 2001 From: Jinma Yamashita <9401060+jinmayamashita@users.noreply.github.com> Date: Mon, 23 Jan 2023 22:00:25 +0900 Subject: [PATCH 4/9] e2e on preview app --- packages/create-codes/templates/react/package.json | 1 + packages/create-codes/templates/react/src/main.tsx | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/create-codes/templates/react/package.json b/packages/create-codes/templates/react/package.json index 72dbd76e..c83f1e61 100644 --- a/packages/create-codes/templates/react/package.json +++ b/packages/create-codes/templates/react/package.json @@ -10,6 +10,7 @@ "scripts": { "dev": "vite --port 3000", "build": "tsc && vite build", + "build:e2e": "tsc && vite build --mode development", "lint": "eslint . --ext .js,jsx,.ts,.tsx", "preview": "vite preview --port 3000", "test": "jest", diff --git a/packages/create-codes/templates/react/src/main.tsx b/packages/create-codes/templates/react/src/main.tsx index f7fe172e..04e0f15d 100644 --- a/packages/create-codes/templates/react/src/main.tsx +++ b/packages/create-codes/templates/react/src/main.tsx @@ -5,7 +5,10 @@ import { App } from "@/App"; import "./main.scss"; const prepare = async (): Promise => { - if (import.meta.env.DEV && !import.meta.env.VITE_REACT_APP_API_HOST) { + if ( + (import.meta.env.DEV || import.meta.env.MODE === "development") && + !import.meta.env.VITE_REACT_APP_API_HOST + ) { const { mockServer } = await import("@/__mocks__/server"); mockServer.start({ onUnhandledRequest: "bypass", From 6c9fbf21fab434779795415d8987dc86c343f63b Mon Sep 17 00:00:00 2001 From: Jinma Yamashita <9401060+jinmayamashita@users.noreply.github.com> Date: Mon, 23 Jan 2023 22:11:42 +0900 Subject: [PATCH 5/9] adjust copy to boilerplate files --- package.json | 2 +- packages/create-codes/__tests__/cli.test.ts | 2 +- packages/create-codes/src/index.ts | 2 +- packages/create-codes/templates/react/.npmrc | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 packages/create-codes/templates/react/.npmrc diff --git a/package.json b/package.json index 2fad8696..b72551fd 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "create-codes", "version": "0.0.0", "scripts": { - "test": "turbo run build test --filter=!reactjs-boilerplate", + "test": "turbo run build --filter=create-codes test --filter=create-codes", "type": "turbo run type --filter=!reactjs-boilerplate", "lint": "turbo run lint --filter=!reactjs-boilerplate" }, diff --git a/packages/create-codes/__tests__/cli.test.ts b/packages/create-codes/__tests__/cli.test.ts index 8e65a9a6..de917c45 100644 --- a/packages/create-codes/__tests__/cli.test.ts +++ b/packages/create-codes/__tests__/cli.test.ts @@ -52,13 +52,13 @@ describe("create-codes cli", () => { ".env.template", ".eslintrc.js", ".gitignore", + ".npmrc", "README.md", "__mocks__", "babel.config.js", "index.html", "jest-setup.ts", "package.json", - "playwright.config.ts", "public", "src", "tests", diff --git a/packages/create-codes/src/index.ts b/packages/create-codes/src/index.ts index 183d7c99..a97aad67 100644 --- a/packages/create-codes/src/index.ts +++ b/packages/create-codes/src/index.ts @@ -50,7 +50,7 @@ async function run() { fse.copySync(TEMPLATE_DIR, appDir, { filter: (src) => - !["node_modules", "dist", "turbo"].includes(path.basename(src)), + !["node_modules", "dist", ".turbo"].includes(path.basename(src)), }); fse.copySync(TEMPLATE_SHARE_DIR, appDir); diff --git a/packages/create-codes/templates/react/.npmrc b/packages/create-codes/templates/react/.npmrc new file mode 100644 index 00000000..dd854dc4 --- /dev/null +++ b/packages/create-codes/templates/react/.npmrc @@ -0,0 +1 @@ +public-hoist-pattern[]=@types/* From dfc53bdd38f83a3784d190d5fad0349dedf6915e Mon Sep 17 00:00:00 2001 From: Jinma Yamashita <9401060+jinmayamashita@users.noreply.github.com> Date: Mon, 23 Jan 2023 22:42:58 +0900 Subject: [PATCH 6/9] e2e on ci --- .github/workflows/tests.yml | 18 +++++++++++++++++- package.json | 1 + packages/e2e-testing/package.json | 3 ++- turbo.json | 5 +++++ 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 72c5982d..d0c99ccf 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -25,11 +25,27 @@ jobs: - name: Install dependencies run: pnpm install + # Create cache for Playwright installation + - name: Restore Playwright Installation Cache + id: playwright-cache + uses: actions/cache@v3 + with: + path: ~/.cache/ms-playwright + key: ${{ runner.os }}-playwright-${{ hashFiles('**/pnpm.lock.yaml') }} + + # Install Playwright if pnpm.lock.yaml changed + - name: Install Playwright + if: steps.playwright-cache.outputs.cache-hit != 'true' + run: ./node_modules/.bin/playwright install + - name: Lint run: pnpm lint - name: Type check run: pnpm type - - name: Test + - name: Unit Test run: pnpm test + + - name: Run E2E test + run: pnpm e2e diff --git a/package.json b/package.json index b72551fd..c00e74e0 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "0.0.0", "scripts": { "test": "turbo run build --filter=create-codes test --filter=create-codes", + "e2e": "turbo run e2e", "type": "turbo run type --filter=!reactjs-boilerplate", "lint": "turbo run lint --filter=!reactjs-boilerplate" }, diff --git a/packages/e2e-testing/package.json b/packages/e2e-testing/package.json index d7b2ecb4..fd294a8d 100644 --- a/packages/e2e-testing/package.json +++ b/packages/e2e-testing/package.json @@ -2,7 +2,8 @@ "name": "e2e-testing", "private": true, "scripts": { - "e2e:dev": "playwright test" + "e2e:dev": "playwright test", + "e2e": "start-server-and-test \"(cd ../.. && ./node_modules/.bin/turbo run preview --filter=reactjs-boilerplate)\" \"3000\" \"playwright test\"" }, "dependencies": { "@playwright/test": "1.29.2" diff --git a/turbo.json b/turbo.json index 7b27e55c..b2842bd3 100644 --- a/turbo.json +++ b/turbo.json @@ -5,6 +5,11 @@ "build": { "dependsOn": ["^build"] }, + "build:e2e": {}, + "preview": { + "dependsOn": ["build:e2e"] + }, + "e2e": {}, "type": {}, "lint": {}, "test": {}, From b226b7e3c68920ca34b7262a3b968c58ce13841f Mon Sep 17 00:00:00 2001 From: Jinma Yamashita <9401060+jinmayamashita@users.noreply.github.com> Date: Mon, 23 Jan 2023 22:48:29 +0900 Subject: [PATCH 7/9] download playwright via npx --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d0c99ccf..7c3952c2 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -36,7 +36,7 @@ jobs: # Install Playwright if pnpm.lock.yaml changed - name: Install Playwright if: steps.playwright-cache.outputs.cache-hit != 'true' - run: ./node_modules/.bin/playwright install + run: npx playwright install-deps chromium - name: Lint run: pnpm lint From 8217d8f017ad00edcecf1c36b3f1e136992703b5 Mon Sep 17 00:00:00 2001 From: Jinma Yamashita <9401060+jinmayamashita@users.noreply.github.com> Date: Mon, 23 Jan 2023 22:59:37 +0900 Subject: [PATCH 8/9] restore types/node package in reac app --- packages/create-codes/__tests__/cli.test.ts | 1 - packages/create-codes/templates/react/.npmrc | 1 - .../create-codes/templates/react/package.json | 1 + pnpm-lock.yaml | 57 ++++--------------- 4 files changed, 12 insertions(+), 48 deletions(-) delete mode 100644 packages/create-codes/templates/react/.npmrc diff --git a/packages/create-codes/__tests__/cli.test.ts b/packages/create-codes/__tests__/cli.test.ts index de917c45..f2091777 100644 --- a/packages/create-codes/__tests__/cli.test.ts +++ b/packages/create-codes/__tests__/cli.test.ts @@ -52,7 +52,6 @@ describe("create-codes cli", () => { ".env.template", ".eslintrc.js", ".gitignore", - ".npmrc", "README.md", "__mocks__", "babel.config.js", diff --git a/packages/create-codes/templates/react/.npmrc b/packages/create-codes/templates/react/.npmrc deleted file mode 100644 index dd854dc4..00000000 --- a/packages/create-codes/templates/react/.npmrc +++ /dev/null @@ -1 +0,0 @@ -public-hoist-pattern[]=@types/* diff --git a/packages/create-codes/templates/react/package.json b/packages/create-codes/templates/react/package.json index c83f1e61..8ee9d9a9 100644 --- a/packages/create-codes/templates/react/package.json +++ b/packages/create-codes/templates/react/package.json @@ -25,6 +25,7 @@ "@testing-library/jest-dom": "5.16.5", "@testing-library/react": "13.4.0", "@testing-library/user-event": "14.4.3", + "@types/node": "18.11.18", "@types/react": "18.0.27", "@types/react-dom": "18.0.10", "@typescript-eslint/eslint-plugin": "5.48.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 203aa064..9ec0bee5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -51,6 +51,7 @@ importers: '@testing-library/jest-dom': 5.16.5 '@testing-library/react': 13.4.0 '@testing-library/user-event': 14.4.3 + '@types/node': 18.11.18 '@types/react': 18.0.27 '@types/react-dom': 18.0.10 '@typescript-eslint/eslint-plugin': 5.48.2 @@ -96,6 +97,7 @@ importers: '@testing-library/jest-dom': 5.16.5 '@testing-library/react': 13.4.0_biqbaboplfbrettd7655fr4n2y '@testing-library/user-event': 14.4.3_yxlyej73nftwmh2fiao7paxmlm + '@types/node': 18.11.18 '@types/react': 18.0.27 '@types/react-dom': 18.0.10 '@typescript-eslint/eslint-plugin': 5.48.2_z274t7mj3d3d3lkbtjv4yganzm @@ -105,13 +107,13 @@ importers: eslint: 8.31.0 eslint-plugin-react: 7.32.1_eslint@8.31.0 identity-obj-proxy: 3.0.0 - jest: 29.3.1 + jest: 29.3.1_@types+node@18.11.18 jest-environment-jsdom: 29.3.1 jest-serializer-html: 7.1.0 msw: 0.49.2_typescript@4.9.4 sass: 1.57.1 typescript: 4.9.4 - vite: 4.0.4_sass@1.57.1 + vite: 4.0.4_ovmyjmuuyckt3r3gpaexj2onji whatwg-fetch: 3.6.2 packages/e2e-testing: @@ -2500,7 +2502,7 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.19.6_@babel+core@7.20.12 magic-string: 0.27.0 react-refresh: 0.14.0 - vite: 4.0.4_sass@1.57.1 + vite: 4.0.4_ovmyjmuuyckt3r3gpaexj2onji transitivePeerDependencies: - supports-color dev: true @@ -4872,7 +4874,7 @@ packages: - supports-color dev: true - /jest-cli/29.3.1: + /jest-cli/29.3.1_@types+node@18.11.18: resolution: {integrity: sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -4889,7 +4891,7 @@ packages: exit: 0.1.2 graceful-fs: 4.2.10 import-local: 3.1.0 - jest-config: 29.3.1 + jest-config: 29.3.1_@types+node@18.11.18 jest-util: 29.3.1 jest-validate: 29.3.1 prompts: 2.4.2 @@ -4900,44 +4902,6 @@ packages: - ts-node dev: true - /jest-config/29.3.1: - resolution: {integrity: sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - dependencies: - '@babel/core': 7.20.12 - '@jest/test-sequencer': 29.3.1 - '@jest/types': 29.3.1 - babel-jest: 29.3.1_@babel+core@7.20.12 - chalk: 4.1.2 - ci-info: 3.7.1 - deepmerge: 4.2.2 - glob: 7.2.3 - graceful-fs: 4.2.10 - jest-circus: 29.3.1 - jest-environment-node: 29.3.1 - jest-get-type: 29.2.0 - jest-regex-util: 29.2.0 - jest-resolve: 29.3.1 - jest-runner: 29.3.1 - jest-util: 29.3.1 - jest-validate: 29.3.1 - micromatch: 4.0.5 - parse-json: 5.2.0 - pretty-format: 29.3.1 - slash: 3.0.0 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - /jest-config/29.3.1_@types+node@18.11.18: resolution: {integrity: sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5302,7 +5266,7 @@ packages: supports-color: 8.1.1 dev: true - /jest/29.3.1: + /jest/29.3.1_@types+node@18.11.18: resolution: {integrity: sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -5315,7 +5279,7 @@ packages: '@jest/core': 29.3.1 '@jest/types': 29.3.1 import-local: 3.1.0 - jest-cli: 29.3.1 + jest-cli: 29.3.1_@types+node@18.11.18 transitivePeerDependencies: - '@types/node' - supports-color @@ -7224,7 +7188,7 @@ packages: fsevents: 2.3.2 dev: true - /vite/4.0.4_sass@1.57.1: + /vite/4.0.4_ovmyjmuuyckt3r3gpaexj2onji: resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -7249,6 +7213,7 @@ packages: terser: optional: true dependencies: + '@types/node': 18.11.18 esbuild: 0.16.17 postcss: 8.4.21 resolve: 1.22.1 From ee7b8027db118a0d9c767b3a1132900e2a8a27a9 Mon Sep 17 00:00:00 2001 From: Jinma Yamashita <9401060+jinmayamashita@users.noreply.github.com> Date: Mon, 23 Jan 2023 23:11:57 +0900 Subject: [PATCH 9/9] test: fix type check on react app --- packages/create-codes/templates/react/package.json | 2 ++ pnpm-lock.yaml | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/packages/create-codes/templates/react/package.json b/packages/create-codes/templates/react/package.json index 8ee9d9a9..470d451a 100644 --- a/packages/create-codes/templates/react/package.json +++ b/packages/create-codes/templates/react/package.json @@ -25,9 +25,11 @@ "@testing-library/jest-dom": "5.16.5", "@testing-library/react": "13.4.0", "@testing-library/user-event": "14.4.3", + "@types/jest": "29.2.6", "@types/node": "18.11.18", "@types/react": "18.0.27", "@types/react-dom": "18.0.10", + "@types/testing-library__jest-dom": "5.14.5", "@typescript-eslint/eslint-plugin": "5.48.2", "@typescript-eslint/parser": "5.48.2", "@vitejs/plugin-react": "3.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9ec0bee5..f7f1653a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -51,9 +51,11 @@ importers: '@testing-library/jest-dom': 5.16.5 '@testing-library/react': 13.4.0 '@testing-library/user-event': 14.4.3 + '@types/jest': 29.2.6 '@types/node': 18.11.18 '@types/react': 18.0.27 '@types/react-dom': 18.0.10 + '@types/testing-library__jest-dom': 5.14.5 '@typescript-eslint/eslint-plugin': 5.48.2 '@typescript-eslint/parser': 5.48.2 '@vitejs/plugin-react': 3.0.1 @@ -97,9 +99,11 @@ importers: '@testing-library/jest-dom': 5.16.5 '@testing-library/react': 13.4.0_biqbaboplfbrettd7655fr4n2y '@testing-library/user-event': 14.4.3_yxlyej73nftwmh2fiao7paxmlm + '@types/jest': 29.2.6 '@types/node': 18.11.18 '@types/react': 18.0.27 '@types/react-dom': 18.0.10 + '@types/testing-library__jest-dom': 5.14.5 '@typescript-eslint/eslint-plugin': 5.48.2_z274t7mj3d3d3lkbtjv4yganzm '@typescript-eslint/parser': 5.48.2_iukboom6ndih5an6iafl45j2fe '@vitejs/plugin-react': 3.0.1_vite@4.0.4