kin: auto-commit after pipeline
This commit is contained in:
parent
4bc421e117
commit
2052bdb806
1 changed files with 77 additions and 0 deletions
|
|
@ -290,3 +290,80 @@ describe('KIN-099: localStorage dismissed watchdog — сохранение (л
|
||||||
// Size limit is capped at WATCHDOG_MAX_STORED (100) — only last 100 IDs stored
|
// Size limit is capped at WATCHDOG_MAX_STORED (100) — only last 100 IDs stored
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// ─────────────────────────────────────────────────────────────
|
||||||
|
// KIN-OBS-017: saveDismissedWatchdog ограничивает рост localStorage
|
||||||
|
// WATCHDOG_MAX_STORED = 100: при >100 id сохраняются только последние 100
|
||||||
|
// ─────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
describe('KIN-OBS-017: saveDismissedWatchdog не превышает 100 записей в localStorage', () => {
|
||||||
|
it('При добавлении 101-го id — в localStorage остаётся не более 100 записей', async () => {
|
||||||
|
// Предзаполняем localStorage 100 существующими id
|
||||||
|
const existingIds = Array.from({ length: 100 }, (_, i) => `KIN-OLD-${String(i).padStart(3, '0')}`)
|
||||||
|
localStorageMock.setItem('kin_dismissed_watchdog_toasts', JSON.stringify(existingIds))
|
||||||
|
|
||||||
|
vi.mocked(api.notifications).mockResolvedValue([
|
||||||
|
makeNotification('KIN-NEW-101', 'Process died unexpectedly (PID 9999)'),
|
||||||
|
])
|
||||||
|
|
||||||
|
const wrapper = mount(EscalationBanner)
|
||||||
|
await flushPromises()
|
||||||
|
|
||||||
|
// Dismiss нового toast — итого 101 id
|
||||||
|
await wrapper.find('.border-red-700 button').trigger('click')
|
||||||
|
await flushPromises()
|
||||||
|
|
||||||
|
const stored = localStorageMock.getItem('kin_dismissed_watchdog_toasts')
|
||||||
|
expect(stored).toBeTruthy()
|
||||||
|
const parsed = JSON.parse(stored!)
|
||||||
|
expect(parsed.length).toBeLessThanOrEqual(100)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('Сохраняются последние (самые новые) id — самый старый обрезается', async () => {
|
||||||
|
const existingIds = Array.from({ length: 100 }, (_, i) => `KIN-OLD-${String(i).padStart(3, '0')}`)
|
||||||
|
localStorageMock.setItem('kin_dismissed_watchdog_toasts', JSON.stringify(existingIds))
|
||||||
|
|
||||||
|
vi.mocked(api.notifications).mockResolvedValue([
|
||||||
|
makeNotification('KIN-NEWEST', 'Process died unexpectedly (PID 8888)'),
|
||||||
|
])
|
||||||
|
|
||||||
|
const wrapper = mount(EscalationBanner)
|
||||||
|
await flushPromises()
|
||||||
|
|
||||||
|
await wrapper.find('.border-red-700 button').trigger('click')
|
||||||
|
await flushPromises()
|
||||||
|
|
||||||
|
const stored = localStorageMock.getItem('kin_dismissed_watchdog_toasts')
|
||||||
|
const parsed = JSON.parse(stored!)
|
||||||
|
|
||||||
|
// Новейший id должен остаться
|
||||||
|
expect(parsed).toContain('KIN-NEWEST')
|
||||||
|
// Самый старый id должен быть вытеснен
|
||||||
|
expect(parsed).not.toContain('KIN-OLD-000')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('При ровно 99 существующих + 1 новый = 100 — нет усечения, все 100 сохранены', async () => {
|
||||||
|
const existingIds = Array.from({ length: 99 }, (_, i) => `KIN-FIT-${String(i).padStart(3, '0')}`)
|
||||||
|
localStorageMock.setItem('kin_dismissed_watchdog_toasts', JSON.stringify(existingIds))
|
||||||
|
|
||||||
|
vi.mocked(api.notifications).mockResolvedValue([
|
||||||
|
makeNotification('KIN-FIT-099', 'Process died unexpectedly (PID 7777)'),
|
||||||
|
])
|
||||||
|
|
||||||
|
const wrapper = mount(EscalationBanner)
|
||||||
|
await flushPromises()
|
||||||
|
|
||||||
|
await wrapper.find('.border-red-700 button').trigger('click')
|
||||||
|
await flushPromises()
|
||||||
|
|
||||||
|
const stored = localStorageMock.getItem('kin_dismissed_watchdog_toasts')
|
||||||
|
const parsed = JSON.parse(stored!)
|
||||||
|
|
||||||
|
// Ровно 100 — без усечения
|
||||||
|
expect(parsed.length).toBe(100)
|
||||||
|
// Первый старый id не вытеснен
|
||||||
|
expect(parsed).toContain('KIN-FIT-000')
|
||||||
|
// Новый id присутствует
|
||||||
|
expect(parsed).toContain('KIN-FIT-099')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue