Fix release version labels across deployment views
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
import { afterEach, beforeEach, expect, it, vi } from 'vitest';
|
||||
import { newFixture, type Fixture } from '../helpers/fixture.js';
|
||||
import { campaignOutcome, type CampaignSummary } from '../../src/lib/ui/campaigns.js';
|
||||
import {
|
||||
campaignOutcome,
|
||||
campaignTitle,
|
||||
type CampaignSummary
|
||||
} from '../../src/lib/ui/campaigns.js';
|
||||
|
||||
let fixture: Fixture;
|
||||
beforeEach(async () => {
|
||||
@@ -61,6 +65,48 @@ it('searches script names, campaign IDs and friendly server names across all ret
|
||||
expect((await get('q=not-found')).total).toBe(0);
|
||||
});
|
||||
|
||||
it('exposes release versions for campaign titles and both campaign detail endpoints', async () => {
|
||||
const { handle, get, add } = await setup();
|
||||
add('aggregate-script', ['done']);
|
||||
add('legacy-script', ['done']);
|
||||
add('config', ['done']);
|
||||
handle.exec(`
|
||||
INSERT INTO scripts(id,name,target_rel_path,kind)
|
||||
VALUES(1,'Double Tap','double.gsc','script'),(2,'Server settings','settings.cfg','config');
|
||||
INSERT INTO script_versions(id,script_id,version,release_version,kind,sha256,size)
|
||||
VALUES(1,1,2,'1.3.0','script','old',0),(2,1,11,'2.4.1','script','new',0),
|
||||
(3,2,4,NULL,'config','settings',0);
|
||||
INSERT INTO deployment_scripts(deployment_id,script_id,script_version_id,prior_version_id,kind)
|
||||
VALUES('aggregate-script',1,2,1,'script'),('config',2,3,NULL,'config');
|
||||
UPDATE deployments SET script_id=1,script_version_id=2,prior_version_id=1 WHERE id='legacy-script';
|
||||
`);
|
||||
const { deployments } = await get();
|
||||
const versions = {
|
||||
script_kind: 'script',
|
||||
script_version: 11,
|
||||
script_release_version: '2.4.1',
|
||||
prior_version: 2,
|
||||
prior_release_version: '1.3.0'
|
||||
};
|
||||
const aggregate = deployments.find((row) => row.id === 'aggregate-script')!;
|
||||
const legacy = deployments.find((row) => row.id === 'legacy-script')!;
|
||||
expect(aggregate.scripts).toEqual([expect.objectContaining(versions)]);
|
||||
expect(legacy).toMatchObject(versions);
|
||||
expect(campaignTitle(aggregate)).toBe('Promote · Double Tap 2.4.1 (upload 11)');
|
||||
expect(campaignTitle(legacy)).toBe('Promote · Double Tap 2.4.1 (upload 11)');
|
||||
expect(campaignTitle(deployments.find((row) => row.id === 'config')!)).toBe(
|
||||
'Promote · Server settings v4'
|
||||
);
|
||||
|
||||
const { GET: campaignDetail } = await import('../../src/routes/api/campaigns/[id]/+server.js');
|
||||
const { GET: deploymentDetail } =
|
||||
await import('../../src/routes/api/deployments/[id]/+server.js');
|
||||
for (const detail of [campaignDetail, deploymentDetail]) {
|
||||
const response = await (await detail({ params: { id: 'aggregate-script' } })).json();
|
||||
expect(response.scripts).toEqual([expect.objectContaining(versions)]);
|
||||
}
|
||||
});
|
||||
|
||||
it('keeps API status filters and active/history partitions consistent with displayed outcomes', async () => {
|
||||
const { handle, get, add } = await setup();
|
||||
add('complete', ['done']);
|
||||
|
||||
Reference in New Issue
Block a user