feat: unify recovery, updates, and schedules under Maintenance
This commit is contained in:
@@ -60,6 +60,16 @@ describe('persisted Fleet operations', () => {
|
||||
beforeEach(async () => { vi.resetModules(); fixture = await newFixture(); });
|
||||
afterEach(async () => { await fixture.cleanup(); });
|
||||
|
||||
it('shows failed update verification even after a healthy restart and clears attention on a new attempt', async () => {
|
||||
const { db } = await import('../../src/lib/server/db/index.js');
|
||||
const handle = db();
|
||||
handle.prepare("INSERT INTO maintenance_jobs(server,kind,state,target_revision,requested_at,detail) VALUES ('server','update','failed',5354,?,'Revision not verified')").run(iso());
|
||||
const { fleetOperations } = await import('../../src/lib/server/fleet/overview.js');
|
||||
expect(fleetOperations(now)).toEqual([expect.objectContaining({ kind: 'maintenance', state: 'attention', detail: 'Revision not verified' })]);
|
||||
handle.prepare("INSERT INTO maintenance_jobs(server,kind,state,target_revision,requested_at) VALUES ('server','update','queued',5354,?)").run(iso(1000));
|
||||
expect(fleetOperations(now)).toEqual([]);
|
||||
});
|
||||
|
||||
it('recovers waiting and recovering campaigns without needing a live event', async () => {
|
||||
const { db, closeDb } = await import('../../src/lib/server/db/index.js');
|
||||
const handle = db();
|
||||
|
||||
Reference in New Issue
Block a user