Files
electric-cherry/tests/unit/activity-redirects.test.ts

41 lines
2.0 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import { load as activity } from '../../src/routes/activity/+page.server.js';
import { load as operations } from '../../src/routes/operations/+page.server.js';
describe.each([
['/activity', activity],
['/operations', operations]
] as const)('retired %s page', (path, load) => {
it.each([
['', '/provisioning?view=history'],
['?source=provisioning', '/provisioning?view=history'],
['?source=autoscaling', '/provisioning?view=history&source=autoscaling'],
['?source=unknown&offset=100', '/provisioning?view=history'],
['?server=town', '/servers/town?tab=history'],
['?server=town%20%2F%201', '/servers/town%20%2F%201?tab=history'],
[
'?server=town&host=host-1&source=campaign&state=failed&days=7&q=files&limit=10&offset=20',
'/servers/town?tab=history&host=host-1&source=campaign&state=failed&days=7&q=files&limit=10&offset=20'
],
[
'?server=town&tab=overview&excludeProvisioning=true&excludeMaintenance=true#operation-1',
'/servers/town?tab=history#operation-1'
],
['?host=host%20%2F%201&offset=50', '/hosts/operations?host=host+%2F+1'],
['?server=%20&host=deleted-host', '/hosts/operations?host=deleted-host'],
['?source=host', '/hosts/operations'],
['?source=campaign&q=files&offset=50', '/campaigns?q=files'],
['?source=beta&q=release&offset=50', '/betas?view=history&q=release'],
[
'?source=maintenance&type=update&state=failed&offset=25',
'/maintenance?view=activity&type=update&source=maintenance&state=failed&offset=25'
],
['?source=recovery', '/maintenance?view=activity&source=recovery'],
['?returnTo=%2Fhosts', '/provisioning?view=history&returnTo=%2Fhosts']
])('redirects %s directly to %s', (query, location) => {
expect(() => load({ url: new URL(`https://ec.test${path}${query}`) })).toThrow(
expect.objectContaining({ status: 308, location })
);
});
});