feat: update tests + seed script, add ecology→board migration
- useOnboarding.test.js: hasEngagedEcology→hasEngagedBoard, /api/ecology/suggestions→/api/board/suggestions, ecology key/route→board in test assertions - onboarding-status.test.js: stale description strings updated - seed-welcome-tester.cjs: communityEcology→board, ecologyPageVisited→boardPageVisited - migrate-ecology-to-board.cjs: one-time migration renames three member fields and activity log action values
This commit is contained in:
parent
49c54764c6
commit
74b2287d48
4 changed files with 95 additions and 26 deletions
|
|
@ -40,7 +40,7 @@ describe('useOnboarding', () => {
|
|||
goals: {
|
||||
hasProfileTags: false,
|
||||
hasVisitedEvent: false,
|
||||
hasEngagedEcology: false,
|
||||
hasEngagedBoard: false,
|
||||
hasClickedWiki: false,
|
||||
},
|
||||
completedAt: null,
|
||||
|
|
@ -63,7 +63,7 @@ describe('useOnboarding', () => {
|
|||
goals: {
|
||||
hasProfileTags: true,
|
||||
hasVisitedEvent: false,
|
||||
hasEngagedEcology: true,
|
||||
hasEngagedBoard: true,
|
||||
hasClickedWiki: false,
|
||||
},
|
||||
completedAt: null,
|
||||
|
|
@ -81,7 +81,7 @@ describe('useOnboarding', () => {
|
|||
|
||||
expect(goals.value.hasProfileTags).toBe(true)
|
||||
expect(goals.value.hasVisitedEvent).toBe(false)
|
||||
expect(goals.value.hasEngagedEcology).toBe(true)
|
||||
expect(goals.value.hasEngagedBoard).toBe(true)
|
||||
expect(goals.value.hasClickedWiki).toBe(false)
|
||||
})
|
||||
|
||||
|
|
@ -93,14 +93,14 @@ describe('useOnboarding', () => {
|
|||
goals: {
|
||||
hasProfileTags: true,
|
||||
hasVisitedEvent: true,
|
||||
hasEngagedEcology: true,
|
||||
hasEngagedBoard: true,
|
||||
hasClickedWiki: true,
|
||||
},
|
||||
completedAt: '2026-04-01T00:00:00Z',
|
||||
})
|
||||
}
|
||||
if (url === '/api/events/recommended') return Promise.resolve([])
|
||||
if (url === '/api/ecology/suggestions') return Promise.resolve({ suggestions: [] })
|
||||
if (url === '/api/board/suggestions') return Promise.resolve({ suggestions: [] })
|
||||
if (url === '/api/wiki/recommended') return Promise.resolve([])
|
||||
return Promise.resolve(null)
|
||||
})
|
||||
|
|
@ -123,7 +123,7 @@ describe('useOnboarding', () => {
|
|||
goals: {
|
||||
hasProfileTags: true,
|
||||
hasVisitedEvent: true,
|
||||
hasEngagedEcology: false,
|
||||
hasEngagedBoard: false,
|
||||
hasClickedWiki: false,
|
||||
},
|
||||
completedAt: null,
|
||||
|
|
@ -162,7 +162,7 @@ describe('useOnboarding', () => {
|
|||
goals: {
|
||||
hasProfileTags: true,
|
||||
hasVisitedEvent: false,
|
||||
hasEngagedEcology: false,
|
||||
hasEngagedBoard: false,
|
||||
hasClickedWiki: false,
|
||||
},
|
||||
completedAt: null,
|
||||
|
|
@ -182,15 +182,15 @@ describe('useOnboarding', () => {
|
|||
expect(currentSuggestion.value.actionText).toBe('Browse events')
|
||||
})
|
||||
|
||||
// 9.6: currentSuggestion returns ecology when tags + event done (priority 3)
|
||||
it('9.6: currentSuggestion returns ecology when tags + event done', async () => {
|
||||
// 9.6: currentSuggestion returns board when tags + event done (priority 3)
|
||||
it('9.6: currentSuggestion returns board when tags + event done', async () => {
|
||||
fetchMock.mockImplementation((url) => {
|
||||
if (url === '/api/onboarding/status') {
|
||||
return Promise.resolve({
|
||||
goals: {
|
||||
hasProfileTags: true,
|
||||
hasVisitedEvent: true,
|
||||
hasEngagedEcology: false,
|
||||
hasEngagedBoard: false,
|
||||
hasClickedWiki: false,
|
||||
},
|
||||
completedAt: null,
|
||||
|
|
@ -205,8 +205,8 @@ describe('useOnboarding', () => {
|
|||
expect(loading.value).toBe(false)
|
||||
})
|
||||
|
||||
expect(currentSuggestion.value.key).toBe('ecology')
|
||||
expect(currentSuggestion.value.action).toBe('/ecology')
|
||||
expect(currentSuggestion.value.key).toBe('board')
|
||||
expect(currentSuggestion.value.action).toBe('/board')
|
||||
})
|
||||
|
||||
// 9.7: currentSuggestion returns wiki when only wiki remaining (priority 4)
|
||||
|
|
@ -217,7 +217,7 @@ describe('useOnboarding', () => {
|
|||
goals: {
|
||||
hasProfileTags: true,
|
||||
hasVisitedEvent: true,
|
||||
hasEngagedEcology: true,
|
||||
hasEngagedBoard: true,
|
||||
hasClickedWiki: false,
|
||||
},
|
||||
completedAt: null,
|
||||
|
|
@ -245,14 +245,14 @@ describe('useOnboarding', () => {
|
|||
goals: {
|
||||
hasProfileTags: true,
|
||||
hasVisitedEvent: true,
|
||||
hasEngagedEcology: true,
|
||||
hasEngagedBoard: true,
|
||||
hasClickedWiki: true,
|
||||
},
|
||||
completedAt: '2026-04-01T00:00:00Z',
|
||||
})
|
||||
}
|
||||
if (url === '/api/events/recommended') return Promise.resolve([])
|
||||
if (url === '/api/ecology/suggestions') return Promise.resolve({ suggestions: [] })
|
||||
if (url === '/api/board/suggestions') return Promise.resolve({ suggestions: [] })
|
||||
if (url === '/api/wiki/recommended') return Promise.resolve([])
|
||||
return Promise.resolve(null)
|
||||
})
|
||||
|
|
@ -280,7 +280,7 @@ describe('useOnboarding', () => {
|
|||
goals: {
|
||||
hasProfileTags: true,
|
||||
hasVisitedEvent: true,
|
||||
hasEngagedEcology: true,
|
||||
hasEngagedBoard: true,
|
||||
hasClickedWiki: true,
|
||||
},
|
||||
completedAt: '2026-04-01T00:00:00Z',
|
||||
|
|
@ -289,7 +289,7 @@ describe('useOnboarding', () => {
|
|||
if (url === '/api/events/recommended') {
|
||||
return Promise.resolve([{ _id: 'e1', title: 'Game Jam' }])
|
||||
}
|
||||
if (url === '/api/ecology/suggestions') {
|
||||
if (url === '/api/board/suggestions') {
|
||||
return Promise.resolve({ suggestions: [{ name: 'Alex' }] })
|
||||
}
|
||||
if (url === '/api/wiki/recommended') {
|
||||
|
|
@ -320,7 +320,7 @@ describe('useOnboarding', () => {
|
|||
goals: {
|
||||
hasProfileTags: true,
|
||||
hasVisitedEvent: true,
|
||||
hasEngagedEcology: true,
|
||||
hasEngagedBoard: true,
|
||||
hasClickedWiki: true,
|
||||
},
|
||||
completedAt: '2026-04-01T00:00:00Z',
|
||||
|
|
@ -329,7 +329,7 @@ describe('useOnboarding', () => {
|
|||
if (url === '/api/events/recommended') {
|
||||
return Promise.resolve([{ _id: 'e1', title: 'Game Jam' }])
|
||||
}
|
||||
if (url === '/api/ecology/suggestions') {
|
||||
if (url === '/api/board/suggestions') {
|
||||
return Promise.resolve({ suggestions: [] })
|
||||
}
|
||||
if (url === '/api/wiki/recommended') {
|
||||
|
|
@ -366,14 +366,14 @@ describe('useOnboarding', () => {
|
|||
goals: {
|
||||
hasProfileTags: true,
|
||||
hasVisitedEvent: true,
|
||||
hasEngagedEcology: true,
|
||||
hasEngagedBoard: true,
|
||||
hasClickedWiki: true,
|
||||
},
|
||||
completedAt: '2026-04-01T00:00:00Z',
|
||||
})
|
||||
}
|
||||
if (url === '/api/events/recommended') return Promise.resolve([])
|
||||
if (url === '/api/ecology/suggestions') return Promise.resolve({ suggestions: [] })
|
||||
if (url === '/api/board/suggestions') return Promise.resolve({ suggestions: [] })
|
||||
if (url === '/api/wiki/recommended') return Promise.resolve([])
|
||||
return Promise.resolve(null)
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue