Files
AtreidesAssetsFree/tests/server/keys-move.test.mjs
T

41 lines
1.9 KiB
JavaScript
Raw Permalink Normal View History

2026-10-29 11:57:29 +01:00
// Generated, do not edit. sha256:dd1bcf99efd446812f29e83f4cccd6691a1368dbca957ce48876c8d396e81efa
import { describe, it, beforeEach, afterEach } from 'node:test';
import assert from 'node:assert/strict';
import { mkdtemp, rm } from 'node:fs/promises';
import { tmpdir } from 'node:os';
import { join } from 'node:path';
import { writeActiveName } from '../../server/portfolios.mjs';
import { moveProviderKeys, readSecretsStore, writeSecretsStore } from '../../server/keys.mjs';
let DIR, vorige;
beforeEach(async () => {
vorige = process.env.ASSETAPP_DATA_DIR;
DIR = await mkdtemp(join(tmpdir(), 'assetapp-keys-'));
process.env.ASSETAPP_DATA_DIR = DIR;
writeActiveName('Echt');
});
afterEach(async () => {
if (vorige === undefined) delete process.env.ASSETAPP_DATA_DIR; else process.env.ASSETAPP_DATA_DIR = vorige;
await rm(DIR, { recursive: true, force: true });
});
describe('moveProviderKeys', () => {
it('verhuist de sleutel naar de samengevoegde bron en laat de rest staan', async () => {
await writeSecretsStore({ eulerpool_metal: { api_key: 'geheim' }, goldapi: { api_key: 'ander' } });
assert.equal(await moveProviderKeys('eulerpool_metal', 'eulerpool'), true);
assert.deepEqual(await readSecretsStore(), { eulerpool: { api_key: 'geheim' }, goldapi: { api_key: 'ander' } });
});
it('laat een sleutel die het doel al had winnen', async () => {
await writeSecretsStore({ eulerpool_metal: { api_key: 'oud' }, eulerpool: { api_key: 'nieuw' } });
await moveProviderKeys('eulerpool_metal', 'eulerpool');
assert.deepEqual(await readSecretsStore(), { eulerpool: { api_key: 'nieuw' } });
});
it('doet niets als er niets te verhuizen is, ook de tweede keer', async () => {
await writeSecretsStore({ eulerpool: { api_key: 'x' } });
assert.equal(await moveProviderKeys('eulerpool_metal', 'eulerpool'), false);
assert.deepEqual(await readSecretsStore(), { eulerpool: { api_key: 'x' } });
});
});