Limit collection targets to 15 lobbies per map
This commit is contained in:
@@ -62,7 +62,8 @@ describe('large native collection admission', () => {
|
||||
const { previewCollection, queueCollection, getCollection } = await import('../../src/lib/server/fleet/collections.js');
|
||||
const { db } = await import('../../src/lib/server/db/index.js');
|
||||
const blueprint = saveBlueprint({ name: 'One hundred lobbies', entries:
|
||||
['theater', 'cosmodrome', 'coast', 'temple', 'moon'].map(mapSlug => ({ game: 't5', mapSlug, count: 20 })) });
|
||||
['theater', 'cosmodrome', 'coast', 'temple', 'moon', 'pentagon', 'prototype']
|
||||
.map((mapSlug, index) => ({ game: 't5', mapSlug, count: index === 6 ? 10 : 15 })) });
|
||||
|
||||
const parse = JSON.parse;
|
||||
let manifestParses = 0;
|
||||
|
||||
@@ -72,15 +72,16 @@ describe('multi-server blueprints', () => {
|
||||
expect(old.entries).toEqual([{ count: 1, game: 't5', mapSlug: 'theater', mapName: 'Kino Der Toten' }]);
|
||||
expect(old).not.toHaveProperty('recipe');
|
||||
expect(previewCreation({ blueprintId: 'legacy' }).recipe.files).toContainEqual(expect.objectContaining({ path: 'telemetry.gsc', versionId: current.id }));
|
||||
const edited = updateBlueprint('legacy', { name: 'Whole lineup', entries });
|
||||
expect(edited.totalServers).toBe(5);
|
||||
expect(edited.entries[0]).toEqual({ ...old.entries[0], count: 2 });
|
||||
const updatedEntries = [{ ...entries[0], count: 15 }, ...entries.slice(1)];
|
||||
const edited = updateBlueprint('legacy', { name: 'Whole lineup', entries: updatedEntries });
|
||||
expect(edited.totalServers).toBe(18);
|
||||
expect(edited.entries[0]).toEqual({ ...old.entries[0], count: 15 });
|
||||
const stored = db().prepare('SELECT recipe FROM server_blueprints WHERE id = ?').get('legacy') as { recipe: string };
|
||||
expect(JSON.parse(stored.recipe)).toEqual({ format: 3, entries });
|
||||
expect(JSON.parse(stored.recipe)).toEqual({ format: 3, entries: updatedEntries });
|
||||
expect(listBlueprints()).toHaveLength(1);
|
||||
});
|
||||
|
||||
it.each([[], [{ game: 't5', mapSlug: 'theater', count: 0 }], [{ game: 't5', mapSlug: 'theater', count: 21 }],
|
||||
it.each([[], [{ game: 't5', mapSlug: 'theater', count: 0 }], [{ game: 't5', mapSlug: 'theater', count: 16 }],
|
||||
[{ game: 't5', mapSlug: 'theater', count: 1.5 }], [{ game: 't5', mapSlug: 'theater', count: '2' }],
|
||||
[{ game: 't5', mapSlug: 'town', count: 1 }], [entries[0], entries[0]]].map(input => ({ input })))('rejects an invalid lineup: $input', async ({ input }) => {
|
||||
const { saveBlueprint } = await import('../../src/lib/server/fleet/launch-recipes.js');
|
||||
|
||||
Reference in New Issue
Block a user