Add autoscaling outcomes to Metrics (Refs #140)
This commit is contained in:
@@ -205,3 +205,41 @@ it('adds match report invalidation on upgrade without invalidating for score hea
|
||||
expect(revision()).toBeGreaterThan(renamed);
|
||||
expect(upgraded.prepare('SELECT * FROM leaderboard_match_players').all()).toEqual([]);
|
||||
});
|
||||
|
||||
it('adds provisioning report invalidation at version 14 without invalidating for progress updates', async () => {
|
||||
const { db, closeDb } = await import('../../src/lib/server/db/index.js');
|
||||
const handle = db();
|
||||
for (const table of ['server_deployments', 'provisioning_sources'])
|
||||
for (const action of ['INSERT', 'UPDATE', 'DELETE'])
|
||||
handle.exec(`DROP TRIGGER report_metrics_${table}_${action}`);
|
||||
handle.pragma('user_version = 14');
|
||||
closeDb();
|
||||
const upgraded = db();
|
||||
const revision = () =>
|
||||
(
|
||||
upgraded
|
||||
.prepare("SELECT revision FROM report_revisions WHERE topic='metrics'")
|
||||
.get() as { revision: number }
|
||||
).revision;
|
||||
const before = revision();
|
||||
upgraded.exec(`INSERT INTO server_deployments
|
||||
(id,server,action,state,stage,started_at,triggered_by)
|
||||
VALUES('operation','t5_zombie_moon_1','create','waiting','Queued',
|
||||
'2026-10-10T12:00:00.000Z','test')`);
|
||||
expect(revision()).toBe(before);
|
||||
upgraded.exec(`INSERT INTO provisioning_sources(operation_id,kind,source_id,server)
|
||||
VALUES('operation','autoscaling','policy','t5_zombie_moon_1')`);
|
||||
expect(revision()).toBeGreaterThan(before);
|
||||
const linked = revision();
|
||||
upgraded.exec(
|
||||
"UPDATE server_deployments SET stage='Still waiting',observed_at='2026-10-10T12:00:15.000Z'"
|
||||
);
|
||||
expect(revision()).toBe(linked);
|
||||
upgraded.exec(
|
||||
"UPDATE server_deployments SET state='done',finished_at='2026-10-10T12:01:12.000Z'"
|
||||
);
|
||||
expect(revision()).toBeGreaterThan(linked);
|
||||
const completed = revision();
|
||||
upgraded.exec('DELETE FROM server_deployments');
|
||||
expect(revision()).toBeGreaterThan(completed);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user