diff options
| author | Gianni Ceccarelli <dakkar@thenautilus.net> | 2024-03-20 02:25:49 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-20 11:25:49 +0900 |
| commit | d7bb6c88d3e4878486fb1f4d1655379896a5d976 (patch) | |
| tree | 452c5ea20578bc569050c54cfc1e747dc3cae100 | |
| parent | fix(frontend): shikiの言語・テーマの定義ファイルをCDN(esm.sh)... (diff) | |
| download | sharkey-d7bb6c88d3e4878486fb1f4d1655379896a5d976.tar.gz sharkey-d7bb6c88d3e4878486fb1f4d1655379896a5d976.tar.bz2 sharkey-d7bb6c88d3e4878486fb1f4d1655379896a5d976.zip | |
Cypress typescript (#13591)
* convert Cypress tests to TypeScript
this work was done by @lunaisnotaboy https://github.com/lunaisnotaboy
for their fork https://github.com/cutiekey/cutiekey/pull/7
I just repacked their changes into a minimal set
* fix call to `window` in cypress tests
this error was spotted thanks to the TypeScript compiler:
```
support/commands.ts:33:12 - error TS2559: Type '(win: any) => void'
has no properties in common with type 'Partial<Loggable &
Timeoutable>'.
33 cy.window(win => {
~~~~~~~~
Found 1 error in support/commands.ts:33
```
(again, @lunaisnotaboy did the actual work)
| -rw-r--r-- | cypress/e2e/basic.cy.ts (renamed from cypress/e2e/basic.cy.js) | 0 | ||||
| -rw-r--r-- | cypress/e2e/router.cy.ts (renamed from cypress/e2e/router.cy.js) | 0 | ||||
| -rw-r--r-- | cypress/e2e/widgets.cy.ts (renamed from cypress/e2e/widgets.cy.js) | 0 | ||||
| -rw-r--r-- | cypress/support/commands.ts (renamed from cypress/support/commands.js) | 2 | ||||
| -rw-r--r-- | cypress/support/e2e.ts (renamed from cypress/support/e2e.js) | 0 | ||||
| -rw-r--r-- | cypress/support/index.ts | 19 | ||||
| -rw-r--r-- | cypress/tsconfig.json | 8 | ||||
| -rw-r--r-- | package.json | 1 | ||||
| -rw-r--r-- | pnpm-lock.yaml | 9 |
9 files changed, 38 insertions, 1 deletions
diff --git a/cypress/e2e/basic.cy.js b/cypress/e2e/basic.cy.ts index d2525e0a7d..d2525e0a7d 100644 --- a/cypress/e2e/basic.cy.js +++ b/cypress/e2e/basic.cy.ts diff --git a/cypress/e2e/router.cy.js b/cypress/e2e/router.cy.ts index 8d8fb3af31..8d8fb3af31 100644 --- a/cypress/e2e/router.cy.js +++ b/cypress/e2e/router.cy.ts diff --git a/cypress/e2e/widgets.cy.js b/cypress/e2e/widgets.cy.ts index 847801a69f..847801a69f 100644 --- a/cypress/e2e/widgets.cy.js +++ b/cypress/e2e/widgets.cy.ts diff --git a/cypress/support/commands.js b/cypress/support/commands.ts index 91a4d7abe6..c2d92e1663 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.ts @@ -30,7 +30,7 @@ Cypress.Commands.add('visitHome', () => { }) Cypress.Commands.add('resetState', () => { - cy.window(win => { + cy.window().then(win => { win.indexedDB.deleteDatabase('keyval-store'); }); cy.request('POST', '/api/reset-db', {}).as('reset'); diff --git a/cypress/support/e2e.js b/cypress/support/e2e.ts index 827a326d18..827a326d18 100644 --- a/cypress/support/e2e.js +++ b/cypress/support/e2e.ts diff --git a/cypress/support/index.ts b/cypress/support/index.ts new file mode 100644 index 0000000000..c1bed21979 --- /dev/null +++ b/cypress/support/index.ts @@ -0,0 +1,19 @@ +declare global { + namespace Cypress { + interface Chainable { + login(username: string, password: string): Chainable<void>; + + registerUser( + username: string, + password: string, + isAdmin?: boolean + ): Chainable<void>; + + resetState(): Chainable<void>; + + visitHome(): Chainable<void>; + } + } +} + +export {} diff --git a/cypress/tsconfig.json b/cypress/tsconfig.json new file mode 100644 index 0000000000..6fe7f32cc4 --- /dev/null +++ b/cypress/tsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "lib": ["dom", "es5"], + "target": "es5", + "types": ["cypress", "node"] + }, + "include": ["./**/*.ts"] +} diff --git a/package.json b/package.json index 41b865456d..8f5ab0b124 100644 --- a/package.json +++ b/package.json @@ -59,6 +59,7 @@ "typescript": "5.3.3" }, "devDependencies": { + "@types/node": "^20.11.28", "@typescript-eslint/eslint-plugin": "7.1.0", "@typescript-eslint/parser": "7.1.0", "cross-env": "7.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2906eef4d8..4c1e228a95 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -44,6 +44,9 @@ importers: specifier: 4.4.0 version: 4.4.0 devDependencies: + '@types/node': + specifier: ^20.11.28 + version: 20.11.28 '@typescript-eslint/eslint-plugin': specifier: 7.1.0 version: 7.1.0(@typescript-eslint/parser@7.1.0)(eslint@8.57.0)(typescript@5.3.3) @@ -7650,6 +7653,12 @@ packages: dependencies: undici-types: 5.26.5 + /@types/node@20.11.28: + resolution: {integrity: sha512-M/GPWVS2wLkSkNHVeLkrF2fD5Lx5UC4PxA0uZcKc6QqbIQUJyW1jVjueJYi1z8n0I5PxYrtpnPnWglE+y9A0KA==} + dependencies: + undici-types: 5.26.5 + dev: true + /@types/node@20.11.5: resolution: {integrity: sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==} dependencies: |