Skip to content

Commit ed6a133

Browse files
committed
Fix hydrateMessages silently dropping user messages
1 parent 4a87c4d commit ed6a133

2 files changed

Lines changed: 21 additions & 2 deletions

File tree

frontend/src/stores/product-expert.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -849,8 +849,11 @@ export const useProductExpertStore = defineStore('product-expert', {
849849
},
850850
hydrateMessages (messages) {
851851
if (!messages) return
852-
const isAiMessage = (message) => message.answer && Array.isArray(message.answer)
853-
const isUserMessage = (message) => Object.prototype.hasOwnProperty.call(message, 'query') && message.query
852+
// both predicates must return real booleans: the switch(true)
853+
// below matches with strict equality, so a truthy string (e.g.
854+
// the query text) would silently never match
855+
const isAiMessage = (message) => Boolean(message.answer && Array.isArray(message.answer))
856+
const isUserMessage = (message) => Boolean(Object.prototype.hasOwnProperty.call(message, 'query') && message.query)
854857

855858
messages.forEach((message) => {
856859
switch (true) {
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { createPinia, setActivePinia } from 'pinia'
2+
import { describe, expect, test, vi } from 'vitest'
3+
4+
vi.mock('@/composables/services/MqttExpertTopicHelper.ts', () => ({ default: {}, getEntityTopicPaths: () => ({}) }))
5+
6+
import { ONBOARDING_FIXTURE_MESSAGES } from '../../../../frontend/src/components/expert/composables/onboardingFixture.js'
7+
import { useProductExpertStore } from '../../../../frontend/src/stores/product-expert.js'
8+
9+
describe('hydrate fixture', () => {
10+
test('hydrates ai and human messages', () => {
11+
setActivePinia(createPinia())
12+
const store = useProductExpertStore()
13+
store.hydrateMessages(ONBOARDING_FIXTURE_MESSAGES)
14+
expect(store.messages.map(m => m._type)).toEqual(['ai', 'human', 'ai', 'human', 'ai'])
15+
})
16+
})

0 commit comments

Comments
 (0)