Compare commits

..

28 Commits

Author SHA1 Message Date
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 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 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
Renovate Bot 1cda01d252 Update oxlint monorepo
renovate/artifacts Artifact file update failure
CI / backend-test (push) Successful in 1m0s
CI / frontend-test (push) Failing after 7s
CI / frontend-e2e (push) Failing after 8s
CI / build-and-publish (push) Has been skipped
2026-04-20 20:02:59 +00:00
7 changed files with 695 additions and 1507 deletions
+1 -1
View File
@@ -7,7 +7,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.11</version>
<version>3.5.13</version>
<relativePath/>
</parent>
+656 -1470
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -38,14 +38,14 @@
"@vue/tsconfig": "^0.9.0",
"eslint": "^10.0.2",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-oxlint": "~1.55.0",
"eslint-plugin-oxlint": "~1.60.0",
"eslint-plugin-vue": "~10.8.0",
"jiti": "^2.6.1",
"jsdom": "^28.1.0",
"jsdom": "^29.0.0",
"msw": "^2.12.10",
"npm-run-all2": "^8.0.4",
"openapi-typescript": "^7.13.0",
"oxlint": "~1.55.0",
"oxlint": "~1.60.0",
"prettier": "3.8.1",
"typescript": "~5.9.3",
"vite": "^8.0.0",
@@ -2,11 +2,12 @@ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'
import { mount, flushPromises } from '@vue/test-utils'
import { createRouter, createMemoryHistory } from 'vue-router'
import EventList from '../EventList.vue'
import type { api } from '../../api/client'
vi.mock('../../api/client', () => ({
api: {
PATCH: vi.fn(),
DELETE: vi.fn(),
PATCH: vi.fn<typeof api.PATCH>(),
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' },
]
const removeEventMock = vi.fn()
const removeEventMock = vi.fn<(eventToken: string) => void>()
vi.mock('../../composables/useEventStorage', () => ({
isValidStoredEvent: (e: unknown) => {
@@ -3,19 +3,20 @@ import { mount, flushPromises } from '@vue/test-utils'
import { createRouter, createMemoryHistory } from 'vue-router'
import EventCreateView from '../EventCreateView.vue'
import { api } from '@/api/client'
import type { StoredEvent } from '@/composables/useEventStorage'
vi.mock('@/api/client', () => ({
api: {
POST: vi.fn(),
POST: vi.fn<typeof api.POST>(),
},
}))
vi.mock('@/composables/useEventStorage', () => ({
useEventStorage: vi.fn(() => ({
saveCreatedEvent: vi.fn(),
getStoredEvents: vi.fn(() => []),
getOrganizerToken: vi.fn(),
saveRsvp: vi.fn(),
getRsvp: vi.fn(),
useEventStorage: vi.fn<() => unknown>(() => ({
saveCreatedEvent: vi.fn<() => void>(),
getStoredEvents: vi.fn<() => unknown[]>(() => []),
getOrganizerToken: vi.fn<() => string | undefined>(),
saveRsvp: vi.fn<() => void>(),
getRsvp: vi.fn<() => unknown>(),
})),
}))
@@ -154,19 +155,19 @@ describe('EventCreateView', () => {
})
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')>)
const { useEventStorage } = await import('@/composables/useEventStorage')
vi.mocked(useEventStorage).mockReturnValue({
saveCreatedEvent: mockSave,
getStoredEvents: vi.fn(() => []),
getOrganizerToken: vi.fn(),
saveRsvp: vi.fn(),
getRsvp: vi.fn(),
removeRsvp: vi.fn(),
saveWatch: vi.fn(),
isStored: vi.fn(() => false),
removeEvent: vi.fn(),
getStoredEvents: vi.fn<() => StoredEvent[]>(() => []),
getOrganizerToken: vi.fn<() => string | undefined>(),
saveRsvp: vi.fn<() => void>(),
getRsvp: vi.fn<() => { rsvpToken: string; rsvpName: string } | undefined>(),
removeRsvp: vi.fn<() => void>(),
saveWatch: vi.fn<() => void>(),
isStored: vi.fn<() => boolean>(() => false),
removeEvent: vi.fn<() => void>(),
})
vi.mocked(api.POST).mockResolvedValueOnce({
@@ -6,26 +6,26 @@ import { api } from '@/api/client'
vi.mock('@/api/client', () => ({
api: {
GET: vi.fn(),
POST: vi.fn(),
GET: vi.fn<typeof api.GET>(),
POST: vi.fn<typeof api.POST>(),
},
}))
const mockSaveRsvp = vi.fn()
const mockGetRsvp = vi.fn()
const mockGetOrganizerToken = vi.fn()
const mockSaveWatch = vi.fn()
const mockIsStored = vi.fn()
const mockRemoveEvent = vi.fn()
const mockSaveRsvp = vi.fn<(...args: unknown[]) => void>()
const mockGetRsvp = vi.fn<(eventToken: string) => { rsvpToken: string; rsvpName: string } | undefined>()
const mockGetOrganizerToken = vi.fn<(eventToken: string) => string | undefined>()
const mockSaveWatch = vi.fn<(...args: unknown[]) => void>()
const mockIsStored = vi.fn<(eventToken: string) => boolean>()
const mockRemoveEvent = vi.fn<(eventToken: string) => void>()
vi.mock('@/composables/useEventStorage', () => ({
useEventStorage: vi.fn(() => ({
saveCreatedEvent: vi.fn(),
getStoredEvents: vi.fn(() => []),
useEventStorage: vi.fn<() => unknown>(() => ({
saveCreatedEvent: vi.fn<() => void>(),
getStoredEvents: vi.fn<() => unknown[]>(() => []),
getOrganizerToken: mockGetOrganizerToken,
saveRsvp: mockSaveRsvp,
getRsvp: mockGetRsvp,
removeRsvp: vi.fn(),
removeRsvp: vi.fn<() => void>(),
saveWatch: mockSaveWatch,
isStored: mockIsStored,
removeEvent: mockRemoveEvent,
@@ -46,7 +46,7 @@ describe('EventStubView', () => {
})
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, {
clipboard: { writeText: writeTextMock },
})
@@ -63,7 +63,7 @@ describe('EventStubView', () => {
it('shows failure message when clipboard is unavailable', async () => {
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')