summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGianni Ceccarelli <dakkar@thenautilus.net>2024-03-20 02:25:49 +0000
committerGitHub <noreply@github.com>2024-03-20 11:25:49 +0900
commitd7bb6c88d3e4878486fb1f4d1655379896a5d976 (patch)
tree452c5ea20578bc569050c54cfc1e747dc3cae100
parentfix(frontend): shikiの言語・テーマの定義ファイルをCDN(esm.sh)... (diff)
downloadsharkey-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.ts19
-rw-r--r--cypress/tsconfig.json8
-rw-r--r--package.json1
-rw-r--r--pnpm-lock.yaml9
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: