Compare commits

..

52 Commits

Author SHA1 Message Date
Renovate Bot fd3bb58b13 Update dependency @vue/test-utils to v2.4.10
CI / frontend-test (push) Successful in 30s
CI / backend-test (push) Successful in 1m9s
CI / frontend-e2e (push) Successful in 1m56s
CI / build-and-publish (push) Has been skipped
2026-05-04 09:03:03 +00:00
nitrix 27f342b166 Merge pull request 'Update oxlint monorepo to ~1.61.0' (#67) from renovate/oxlint-monorepo into master
CI / frontend-test (push) Successful in 29s
CI / backend-test (push) Successful in 1m8s
CI / frontend-e2e (push) Successful in 1m51s
CI / build-and-publish (push) Has been skipped
2026-04-21 12:49:19 +02:00
Renovate Bot 860cb0c85c Update oxlint monorepo to ~1.61.0
CI / frontend-test (push) Successful in 29s
CI / backend-test (push) Successful in 1m11s
CI / frontend-e2e (push) Successful in 1m48s
CI / build-and-publish (push) Has been skipped
2026-04-21 10:42:39 +00:00
nitrix 4f4086bb45 Merge pull request 'Update dependency eslint to v10.2.1' (#65) from renovate/eslint-monorepo into master
CI / frontend-test (push) Successful in 30s
CI / backend-test (push) Successful in 1m10s
CI / frontend-e2e (push) Successful in 1m48s
CI / build-and-publish (push) Has been skipped
2026-04-21 00:11:00 +02:00
nitrix 052cf7c8f5 Merge pull request 'Update dependency @playwright/test to v1.59.1' (#63) from renovate/playwright-monorepo into master
CI / build-and-publish (push) Has been cancelled
CI / frontend-e2e (push) Has been cancelled
CI / frontend-test (push) Has been cancelled
CI / backend-test (push) Has been cancelled
2026-04-21 00:10:46 +02:00
nitrix 9c0e8e80af Merge pull request 'Update dependency vitest to v4.1.4' (#61) from renovate/vitest-monorepo into master
CI / build-and-publish (push) Has been cancelled
CI / frontend-e2e (push) Has been cancelled
CI / frontend-test (push) Has been cancelled
CI / backend-test (push) Has been cancelled
2026-04-21 00:10:33 +02:00
Renovate Bot 21354b1ae3 Update dependency eslint to v10.2.1
CI / frontend-test (push) Successful in 39s
CI / backend-test (push) Successful in 1m33s
CI / frontend-e2e (push) Successful in 2m14s
CI / build-and-publish (push) Has been skipped
2026-04-20 22:02:34 +00:00
Renovate Bot 85b9daac83 Update dependency @playwright/test to v1.59.1
CI / frontend-test (push) Successful in 35s
CI / backend-test (push) Successful in 1m32s
CI / frontend-e2e (push) Successful in 2m12s
CI / build-and-publish (push) Has been skipped
2026-04-20 22:02:25 +00:00
Renovate Bot f24494acec Update dependency vitest to v4.1.4
CI / frontend-test (push) Successful in 32s
CI / backend-test (push) Successful in 1m22s
CI / frontend-e2e (push) Successful in 2m9s
CI / build-and-publish (push) Has been skipped
2026-04-20 22:02:12 +00:00
nitrix c1eb70f8cc Merge pull request 'Update dependency org.openapitools:openapi-generator-maven-plugin to v7.21.0' (#66) from renovate/org.openapitools-openapi-generator-maven-plugin-7.x into master
CI / frontend-test (push) Successful in 30s
CI / backend-test (push) Successful in 1m16s
CI / frontend-e2e (push) Successful in 1m50s
CI / build-and-publish (push) Has been skipped
2026-04-21 00:00:22 +02:00
nitrix feea695412 Merge pull request 'Update dependency com.puppycrawl.tools:checkstyle to v13.4.0' (#64) from renovate/com.puppycrawl.tools-checkstyle-13.x into master
CI / build-and-publish (push) Has been cancelled
CI / frontend-e2e (push) Has been cancelled
CI / frontend-test (push) Has been cancelled
CI / backend-test (push) Has been cancelled
2026-04-21 00:00:04 +02:00
nitrix 2471dce6c2 Merge pull request 'Update dependency vue to v3.5.32' (#62) from renovate/vue-monorepo into master
CI / build-and-publish (push) Has been cancelled
CI / frontend-e2e (push) Has been cancelled
CI / frontend-test (push) Has been cancelled
CI / backend-test (push) Has been cancelled
2026-04-20 23:59:48 +02:00
nitrix 72ed677f70 Merge pull request 'Update dependency vite-plugin-vue-devtools to v8.1.1' (#60) from renovate/vite-plugin-vue-devtools-8.x-lockfile into master
CI / build-and-publish (push) Has been cancelled
CI / frontend-e2e (push) Has been cancelled
CI / frontend-test (push) Has been cancelled
CI / backend-test (push) Has been cancelled
2026-04-20 23:59:33 +02:00
nitrix afebf0e759 Merge pull request 'Update dependency prettier to v3.8.3' (#59) from renovate/prettier-3.x into master
CI / build-and-publish (push) Has been cancelled
CI / frontend-e2e (push) Has been cancelled
CI / frontend-test (push) Has been cancelled
CI / backend-test (push) Has been cancelled
2026-04-20 23:59:23 +02:00
nitrix 23e07b953c Merge pull request 'Update dependency maven to v3.9.15' (#58) from renovate/maven-3.x into master
CI / build-and-publish (push) Has been cancelled
CI / backend-test (push) Has been cancelled
CI / frontend-e2e (push) Has been cancelled
CI / frontend-test (push) Has been cancelled
2026-04-20 23:59:12 +02:00
nitrix 171bdb9732 Merge pull request 'Update dependency com.tngtech.archunit:archunit-junit5 to v1.4.2' (#57) from renovate/com.tngtech.archunit-archunit-junit5-1.x into master
CI / build-and-publish (push) Has been cancelled
CI / backend-test (push) Has been cancelled
CI / frontend-e2e (push) Has been cancelled
CI / frontend-test (push) Has been cancelled
2026-04-20 23:59:02 +02:00
nitrix 72c9fcd843 Merge pull request 'Update dependency com.github.spotbugs:spotbugs-maven-plugin to v4.9.8.3' (#56) from renovate/com.github.spotbugs-spotbugs-maven-plugin-4.x into master
CI / build-and-publish (push) Has been cancelled
CI / frontend-test (push) Has been cancelled
CI / backend-test (push) Has been cancelled
CI / frontend-e2e (push) Has been cancelled
2026-04-20 23:58:53 +02:00
nitrix 8cda421054 Merge pull request 'Update dependency @vue/tsconfig to v0.9.1' (#55) from renovate/vue-tsconfig-0.x-lockfile into master
CI / build-and-publish (push) Has been cancelled
CI / frontend-e2e (push) Has been cancelled
CI / frontend-test (push) Has been cancelled
CI / backend-test (push) Has been cancelled
2026-04-20 23:58:41 +02:00
nitrix 8518adc1b0 Merge pull request 'Update dependency vite to v8.0.9' (#49) from renovate/vite-8.x-lockfile into master
CI / build-and-publish (push) Has been cancelled
CI / frontend-e2e (push) Has been cancelled
CI / frontend-test (push) Has been cancelled
CI / backend-test (push) Has been cancelled
2026-04-20 23:58:31 +02:00
nitrix 4fa6c2ccdb Merge pull request 'Update dependency jsdom to v29' (#44) from renovate/jsdom-29.x into master
CI / build-and-publish (push) Has been cancelled
CI / frontend-e2e (push) Has been cancelled
CI / frontend-test (push) Has been cancelled
CI / backend-test (push) Has been cancelled
2026-04-20 23:58:22 +02:00
Renovate Bot 91023795ce Update dependency jsdom to v29
CI / frontend-test (push) Successful in 39s
CI / backend-test (push) Successful in 1m25s
CI / frontend-e2e (push) Successful in 1m52s
CI / build-and-publish (push) Has been skipped
2026-04-20 21:43:30 +00:00
Renovate Bot f6e5fc06a6 Update dependency org.openapitools:openapi-generator-maven-plugin to v7.21.0
CI / frontend-test (push) Successful in 35s
CI / backend-test (push) Successful in 1m31s
CI / frontend-e2e (push) Successful in 2m14s
CI / build-and-publish (push) Has been skipped
2026-04-20 21:43:22 +00:00
Renovate Bot 3d0f78d122 Update dependency com.puppycrawl.tools:checkstyle to v13.4.0
CI / frontend-test (push) Successful in 36s
CI / backend-test (push) Successful in 1m25s
CI / frontend-e2e (push) Successful in 2m10s
CI / build-and-publish (push) Has been skipped
2026-04-20 21:43:01 +00:00
Renovate Bot 1eae787e4a Update dependency vue to v3.5.32
CI / frontend-test (push) Successful in 42s
CI / backend-test (push) Successful in 1m25s
CI / frontend-e2e (push) Successful in 2m15s
CI / build-and-publish (push) Has been skipped
2026-04-20 21:42:45 +00:00
Renovate Bot 9dccdd2416 Update dependency vite-plugin-vue-devtools to v8.1.1
CI / frontend-test (push) Successful in 41s
CI / backend-test (push) Successful in 1m23s
CI / frontend-e2e (push) Successful in 2m20s
CI / build-and-publish (push) Has been skipped
2026-04-20 21:42:20 +00:00
Renovate Bot 22bf8b78d0 Update dependency vite to v8.0.9
CI / frontend-test (push) Successful in 36s
CI / backend-test (push) Successful in 1m27s
CI / frontend-e2e (push) Successful in 2m12s
CI / build-and-publish (push) Has been skipped
2026-04-20 21:42:04 +00:00
Renovate Bot 633b73fb08 Update dependency prettier to v3.8.3
CI / frontend-test (push) Successful in 42s
CI / backend-test (push) Successful in 1m35s
CI / frontend-e2e (push) Successful in 2m21s
CI / build-and-publish (push) Has been skipped
2026-04-20 21:41:53 +00:00
Renovate Bot e2626f4df1 Update dependency maven to v3.9.15
CI / frontend-test (push) Successful in 41s
CI / backend-test (push) Successful in 1m32s
CI / frontend-e2e (push) Successful in 2m15s
CI / build-and-publish (push) Has been skipped
2026-04-20 21:41:46 +00:00
Renovate Bot 7bf81d7f8e Update dependency com.tngtech.archunit:archunit-junit5 to v1.4.2
CI / frontend-test (push) Successful in 33s
CI / backend-test (push) Successful in 1m29s
CI / frontend-e2e (push) Successful in 2m9s
CI / build-and-publish (push) Has been skipped
2026-04-20 21:41:43 +00:00
Renovate Bot 059bcb7c10 Update dependency com.github.spotbugs:spotbugs-maven-plugin to v4.9.8.3
CI / frontend-test (push) Successful in 37s
CI / backend-test (push) Successful in 1m25s
CI / frontend-e2e (push) Successful in 2m10s
CI / build-and-publish (push) Has been skipped
2026-04-20 21:41:40 +00:00
Renovate Bot b46db52b4a Update dependency @vue/tsconfig to v0.9.1
CI / frontend-test (push) Successful in 31s
CI / backend-test (push) Successful in 1m26s
CI / frontend-e2e (push) Successful in 2m18s
CI / build-and-publish (push) Has been skipped
2026-04-20 21:41:37 +00:00
nitrix bb4170b0b6 Merge pull request 'Update dependency @vitejs/plugin-vue to v6.0.6' (#54) from renovate/vitejs-plugin-vue-6.x-lockfile into master
CI / frontend-test (push) Successful in 29s
CI / backend-test (push) Successful in 1m11s
CI / frontend-e2e (push) Successful in 1m48s
CI / build-and-publish (push) Has been skipped
2026-04-20 23:39:14 +02:00
nitrix 5bd5da7561 Merge pull request 'Update dependency @types/node to v24.12.2' (#53) from renovate/node-24.x-lockfile into master
CI / build-and-publish (push) Has been cancelled
CI / frontend-e2e (push) Has been cancelled
CI / frontend-test (push) Has been cancelled
CI / backend-test (push) Has been cancelled
2026-04-20 23:39:03 +02:00
nitrix 6241a3db9c Merge pull request 'Update dependency @types/jsdom to v28.0.1' (#52) from renovate/jsdom-28.x-lockfile into master
CI / build-and-publish (push) Has been cancelled
CI / frontend-e2e (push) Has been cancelled
CI / frontend-test (push) Has been cancelled
CI / backend-test (push) Has been cancelled
2026-04-20 23:38:53 +02:00
nitrix e73b189056 Merge pull request 'Update dependency vue-router to v5.0.4' (#51) from renovate/vue-router-5.x-lockfile into master
CI / build-and-publish (push) Has been cancelled
CI / frontend-e2e (push) Has been cancelled
CI / frontend-test (push) Has been cancelled
CI / backend-test (push) Has been cancelled
2026-04-20 23:38:43 +02:00
nitrix c33a983390 Merge pull request 'Update dependency org.springframework.boot:spring-boot-starter-parent to v3.5.13' (#50) from renovate/spring-boot into master
CI / build-and-publish (push) Has been cancelled
CI / backend-test (push) Has been cancelled
CI / frontend-e2e (push) Has been cancelled
CI / frontend-test (push) Has been cancelled
2026-04-20 23:38:34 +02:00
nitrix de5e566796 Merge pull request 'Update dependency vue-tsc to v3.2.7' (#47) from renovate/vue-tsc-3.x-lockfile into master
CI / build-and-publish (push) Has been cancelled
CI / backend-test (push) Has been cancelled
CI / frontend-e2e (push) Has been cancelled
CI / frontend-test (push) Has been cancelled
2026-04-20 23:38:13 +02:00
nitrix f8a5aa2eb6 Merge pull request 'Update dependency msw to v2.13.4' (#45) from renovate/msw-2.x-lockfile into master
CI / build-and-publish (push) Has been cancelled
CI / frontend-e2e (push) Has been cancelled
CI / frontend-test (push) Has been cancelled
CI / backend-test (push) Has been cancelled
2026-04-20 23:38:03 +02:00
nitrix f518e02ce0 Merge pull request 'Update dependency @vitest/eslint-plugin to v1.6.16' (#42) from renovate/vitest-eslint-plugin-1.x-lockfile into master
CI / build-and-publish (push) Has been cancelled
CI / frontend-e2e (push) Has been cancelled
CI / frontend-test (push) Has been cancelled
CI / backend-test (push) Has been cancelled
2026-04-20 23:37:54 +02:00
Renovate Bot d732c47139 Update dependency msw to v2.13.4
CI / frontend-test (push) Successful in 37s
CI / backend-test (push) Successful in 1m27s
CI / frontend-e2e (push) Successful in 2m13s
CI / build-and-publish (push) Has been skipped
2026-04-20 21:28:32 +00:00
Renovate Bot a8a577f4a9 Update dependency vue-tsc to v3.2.7
CI / frontend-test (push) Successful in 36s
CI / backend-test (push) Successful in 1m40s
CI / frontend-e2e (push) Successful in 2m20s
CI / build-and-publish (push) Has been skipped
2026-04-20 21:28:20 +00:00
Renovate Bot aacea71be8 Update dependency vue-router to v5.0.4
CI / frontend-test (push) Successful in 42s
CI / backend-test (push) Successful in 1m30s
CI / frontend-e2e (push) Successful in 2m26s
CI / build-and-publish (push) Has been skipped
2026-04-20 21:28:12 +00:00
Renovate Bot 09fb1f1346 Update dependency org.springframework.boot:spring-boot-starter-parent to v3.5.13
CI / frontend-test (push) Successful in 37s
CI / backend-test (push) Successful in 1m25s
CI / frontend-e2e (push) Successful in 2m23s
CI / build-and-publish (push) Has been skipped
2026-04-20 21:27:42 +00:00
Renovate Bot 7fa510d8d8 Update dependency @vitest/eslint-plugin to v1.6.16
CI / frontend-test (push) Successful in 43s
CI / backend-test (push) Successful in 1m32s
CI / frontend-e2e (push) Successful in 2m17s
CI / build-and-publish (push) Has been skipped
2026-04-20 21:27:36 +00:00
Renovate Bot a26d53b00e Update dependency @vitejs/plugin-vue to v6.0.6
CI / frontend-test (push) Successful in 35s
CI / backend-test (push) Successful in 1m34s
CI / frontend-e2e (push) Successful in 2m16s
CI / build-and-publish (push) Has been skipped
2026-04-20 21:27:24 +00:00
Renovate Bot 95a74f83f7 Update dependency @types/node to v24.12.2
CI / frontend-test (push) Successful in 36s
CI / backend-test (push) Successful in 1m22s
CI / frontend-e2e (push) Successful in 2m24s
CI / build-and-publish (push) Has been skipped
2026-04-20 21:27:20 +00:00
Renovate Bot 551ec8cafa Update dependency @types/jsdom to v28.0.1
CI / frontend-test (push) Successful in 33s
CI / backend-test (push) Successful in 1m14s
CI / frontend-e2e (push) Successful in 2m3s
CI / build-and-publish (push) Has been skipped
2026-04-20 21:27:15 +00:00
nitrix c37846df62 Merge pull request 'Update dependency @msw/playwright to v0.6.7' (#48) from renovate/msw-playwright-0.x-lockfile into master
CI / backend-test (push) Successful in 1m0s
CI / frontend-test (push) Successful in 30s
CI / frontend-e2e (push) Successful in 1m50s
CI / build-and-publish (push) Has been skipped
2026-04-20 23:00:00 +02:00
Renovate Bot 0408ce1f8e Update dependency @msw/playwright to v0.6.7
CI / backend-test (push) Successful in 57s
CI / frontend-test (push) Successful in 26s
CI / frontend-e2e (push) Successful in 1m39s
CI / build-and-publish (push) Has been skipped
2026-04-20 20:52:06 +00:00
nitrix 2a8c8ddffd Merge pull request 'Update oxlint monorepo' (#46) from renovate/oxlint-monorepo into master
CI / backend-test (push) Successful in 58s
CI / frontend-test (push) Successful in 27s
CI / frontend-e2e (push) Successful in 1m38s
CI / build-and-publish (push) Has been skipped
2026-04-20 22:47:56 +02:00
nitrix d13a5b2113 Add type parameters to vi.fn() mocks for oxlint 1.60 vitest rule
CI / backend-test (push) Successful in 1m1s
CI / frontend-test (push) Successful in 32s
CI / frontend-e2e (push) Successful in 1m39s
CI / build-and-publish (push) Has been skipped
oxlint 1.60 enables vitest/require-mock-type-parameters by default,
which requires explicit type parameters on all vi.fn() calls.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 22:42:51 +02:00
nitrix 8fb1927917 Pin oxlint to ~1.60.0 to match eslint-plugin-oxlint peer range
CI / backend-test (push) Successful in 57s
CI / frontend-test (push) Failing after 17s
CI / frontend-e2e (push) Successful in 1m42s
CI / build-and-publish (push) Has been skipped
eslint-plugin-oxlint@1.60.0 has a strict peerDependency of
oxlint@~1.60.0, and 1.61.0 is not yet released. Keep the two in
lockstep so npm install resolves cleanly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 22:31:05 +02:00
8 changed files with 900 additions and 1694 deletions
+1 -1
View File
@@ -1,3 +1,3 @@
wrapperVersion=3.3.4 wrapperVersion=3.3.4
distributionType=only-script distributionType=only-script
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.14/apache-maven-3.9.14-bin.zip distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.15/apache-maven-3.9.15-bin.zip
+5 -5
View File
@@ -7,7 +7,7 @@
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.11</version> <version>3.5.13</version>
<relativePath/> <relativePath/>
</parent> </parent>
@@ -62,7 +62,7 @@
<dependency> <dependency>
<groupId>com.tngtech.archunit</groupId> <groupId>com.tngtech.archunit</groupId>
<artifactId>archunit-junit5</artifactId> <artifactId>archunit-junit5</artifactId>
<version>1.4.1</version> <version>1.4.2</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
@@ -95,7 +95,7 @@
<dependency> <dependency>
<groupId>com.puppycrawl.tools</groupId> <groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId> <artifactId>checkstyle</artifactId>
<version>13.3.0</version> <version>13.4.0</version>
</dependency> </dependency>
</dependencies> </dependencies>
<configuration> <configuration>
@@ -129,7 +129,7 @@
<plugin> <plugin>
<groupId>com.github.spotbugs</groupId> <groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId> <artifactId>spotbugs-maven-plugin</artifactId>
<version>4.9.8.2</version> <version>4.9.8.3</version>
<configuration> <configuration>
<effort>Max</effort> <effort>Max</effort>
<threshold>Low</threshold> <threshold>Low</threshold>
@@ -148,7 +148,7 @@
<plugin> <plugin>
<groupId>org.openapitools</groupId> <groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId> <artifactId>openapi-generator-maven-plugin</artifactId>
<version>7.20.0</version> <version>7.21.0</version>
<executions> <executions>
<execution> <execution>
<goals> <goals>
+856 -1652
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -38,15 +38,15 @@
"@vue/tsconfig": "^0.9.0", "@vue/tsconfig": "^0.9.0",
"eslint": "^10.0.2", "eslint": "^10.0.2",
"eslint-config-prettier": "^10.1.8", "eslint-config-prettier": "^10.1.8",
"eslint-plugin-oxlint": "~1.60.0", "eslint-plugin-oxlint": "~1.61.0",
"eslint-plugin-vue": "~10.8.0", "eslint-plugin-vue": "~10.8.0",
"jiti": "^2.6.1", "jiti": "^2.6.1",
"jsdom": "^28.1.0", "jsdom": "^29.0.0",
"msw": "^2.12.10", "msw": "^2.12.10",
"npm-run-all2": "^8.0.4", "npm-run-all2": "^8.0.4",
"openapi-typescript": "^7.13.0", "openapi-typescript": "^7.13.0",
"oxlint": "~1.61.0", "oxlint": "~1.61.0",
"prettier": "3.8.1", "prettier": "3.8.3",
"typescript": "~5.9.3", "typescript": "~5.9.3",
"vite": "^8.0.0", "vite": "^8.0.0",
"vite-plugin-vue-devtools": "^8.0.6", "vite-plugin-vue-devtools": "^8.0.6",
@@ -2,11 +2,12 @@ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'
import { mount, flushPromises } from '@vue/test-utils' import { mount, flushPromises } from '@vue/test-utils'
import { createRouter, createMemoryHistory } from 'vue-router' import { createRouter, createMemoryHistory } from 'vue-router'
import EventList from '../EventList.vue' import EventList from '../EventList.vue'
import type { api } from '../../api/client'
vi.mock('../../api/client', () => ({ vi.mock('../../api/client', () => ({
api: { api: {
PATCH: vi.fn(), PATCH: vi.fn<typeof api.PATCH>(),
DELETE: vi.fn(), DELETE: vi.fn<typeof api.DELETE>(),
}, },
})) }))
@@ -31,7 +32,7 @@ const mockEvents = [
{ eventToken: 'rsvp-1', title: 'Attending Event', dateTime: '2026-03-11T20:00:00', rsvpToken: 'rsvp-token', rsvpName: 'Max' }, { eventToken: 'rsvp-1', title: 'Attending Event', dateTime: '2026-03-11T20:00:00', rsvpToken: 'rsvp-token', rsvpName: 'Max' },
] ]
const removeEventMock = vi.fn() const removeEventMock = vi.fn<(eventToken: string) => void>()
vi.mock('../../composables/useEventStorage', () => ({ vi.mock('../../composables/useEventStorage', () => ({
isValidStoredEvent: (e: unknown) => { isValidStoredEvent: (e: unknown) => {
@@ -3,19 +3,20 @@ import { mount, flushPromises } from '@vue/test-utils'
import { createRouter, createMemoryHistory } from 'vue-router' import { createRouter, createMemoryHistory } from 'vue-router'
import EventCreateView from '../EventCreateView.vue' import EventCreateView from '../EventCreateView.vue'
import { api } from '@/api/client' import { api } from '@/api/client'
import type { StoredEvent } from '@/composables/useEventStorage'
vi.mock('@/api/client', () => ({ vi.mock('@/api/client', () => ({
api: { api: {
POST: vi.fn(), POST: vi.fn<typeof api.POST>(),
}, },
})) }))
vi.mock('@/composables/useEventStorage', () => ({ vi.mock('@/composables/useEventStorage', () => ({
useEventStorage: vi.fn(() => ({ useEventStorage: vi.fn<() => unknown>(() => ({
saveCreatedEvent: vi.fn(), saveCreatedEvent: vi.fn<() => void>(),
getStoredEvents: vi.fn(() => []), getStoredEvents: vi.fn<() => unknown[]>(() => []),
getOrganizerToken: vi.fn(), getOrganizerToken: vi.fn<() => string | undefined>(),
saveRsvp: vi.fn(), saveRsvp: vi.fn<() => void>(),
getRsvp: vi.fn(), getRsvp: vi.fn<() => unknown>(),
})), })),
})) }))
@@ -154,19 +155,19 @@ describe('EventCreateView', () => {
}) })
it('submits successfully, saves to storage, and navigates to event page', async () => { it('submits successfully, saves to storage, and navigates to event page', async () => {
const mockSave = vi.fn() const mockSave = vi.fn<(...args: unknown[]) => void>()
vi.mocked(vi.importActual<typeof import('@/composables/useEventStorage')>) vi.mocked(vi.importActual<typeof import('@/composables/useEventStorage')>)
const { useEventStorage } = await import('@/composables/useEventStorage') const { useEventStorage } = await import('@/composables/useEventStorage')
vi.mocked(useEventStorage).mockReturnValue({ vi.mocked(useEventStorage).mockReturnValue({
saveCreatedEvent: mockSave, saveCreatedEvent: mockSave,
getStoredEvents: vi.fn(() => []), getStoredEvents: vi.fn<() => StoredEvent[]>(() => []),
getOrganizerToken: vi.fn(), getOrganizerToken: vi.fn<() => string | undefined>(),
saveRsvp: vi.fn(), saveRsvp: vi.fn<() => void>(),
getRsvp: vi.fn(), getRsvp: vi.fn<() => { rsvpToken: string; rsvpName: string } | undefined>(),
removeRsvp: vi.fn(), removeRsvp: vi.fn<() => void>(),
saveWatch: vi.fn(), saveWatch: vi.fn<() => void>(),
isStored: vi.fn(() => false), isStored: vi.fn<() => boolean>(() => false),
removeEvent: vi.fn(), removeEvent: vi.fn<() => void>(),
}) })
vi.mocked(api.POST).mockResolvedValueOnce({ vi.mocked(api.POST).mockResolvedValueOnce({
@@ -6,26 +6,26 @@ import { api } from '@/api/client'
vi.mock('@/api/client', () => ({ vi.mock('@/api/client', () => ({
api: { api: {
GET: vi.fn(), GET: vi.fn<typeof api.GET>(),
POST: vi.fn(), POST: vi.fn<typeof api.POST>(),
}, },
})) }))
const mockSaveRsvp = vi.fn() const mockSaveRsvp = vi.fn<(...args: unknown[]) => void>()
const mockGetRsvp = vi.fn() const mockGetRsvp = vi.fn<(eventToken: string) => { rsvpToken: string; rsvpName: string } | undefined>()
const mockGetOrganizerToken = vi.fn() const mockGetOrganizerToken = vi.fn<(eventToken: string) => string | undefined>()
const mockSaveWatch = vi.fn() const mockSaveWatch = vi.fn<(...args: unknown[]) => void>()
const mockIsStored = vi.fn() const mockIsStored = vi.fn<(eventToken: string) => boolean>()
const mockRemoveEvent = vi.fn() const mockRemoveEvent = vi.fn<(eventToken: string) => void>()
vi.mock('@/composables/useEventStorage', () => ({ vi.mock('@/composables/useEventStorage', () => ({
useEventStorage: vi.fn(() => ({ useEventStorage: vi.fn<() => unknown>(() => ({
saveCreatedEvent: vi.fn(), saveCreatedEvent: vi.fn<() => void>(),
getStoredEvents: vi.fn(() => []), getStoredEvents: vi.fn<() => unknown[]>(() => []),
getOrganizerToken: mockGetOrganizerToken, getOrganizerToken: mockGetOrganizerToken,
saveRsvp: mockSaveRsvp, saveRsvp: mockSaveRsvp,
getRsvp: mockGetRsvp, getRsvp: mockGetRsvp,
removeRsvp: vi.fn(), removeRsvp: vi.fn<() => void>(),
saveWatch: mockSaveWatch, saveWatch: mockSaveWatch,
isStored: mockIsStored, isStored: mockIsStored,
removeEvent: mockRemoveEvent, removeEvent: mockRemoveEvent,
@@ -46,7 +46,7 @@ describe('EventStubView', () => {
}) })
it('copies link to clipboard and shows confirmation', async () => { it('copies link to clipboard and shows confirmation', async () => {
const writeTextMock = vi.fn().mockResolvedValue(undefined) const writeTextMock = vi.fn<(text: string) => Promise<void>>().mockResolvedValue(undefined)
Object.assign(navigator, { Object.assign(navigator, {
clipboard: { writeText: writeTextMock }, clipboard: { writeText: writeTextMock },
}) })
@@ -63,7 +63,7 @@ describe('EventStubView', () => {
it('shows failure message when clipboard is unavailable', async () => { it('shows failure message when clipboard is unavailable', async () => {
Object.assign(navigator, { Object.assign(navigator, {
clipboard: { writeText: vi.fn().mockRejectedValue(new Error('Not allowed')) }, clipboard: { writeText: vi.fn<(text: string) => Promise<void>>().mockRejectedValue(new Error('Not allowed')) },
}) })
const wrapper = await mountWithToken('fail-test') const wrapper = await mountWithToken('fail-test')