Skip to content

Commit

Permalink
tests: expanding tests for root keypair changing
Browse files Browse the repository at this point in the history
Added some tests to check that a root keyPair change propagates properly. Also added tests for the change for existing and new node connections.

#317
  • Loading branch information
tegefaulkes committed Jun 10, 2022
1 parent 7581b19 commit 7269ae8
Show file tree
Hide file tree
Showing 2 changed files with 436 additions and 0 deletions.
74 changes: 74 additions & 0 deletions tests/PolykeyAgent.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import type { StateVersion } from '@/schema/types';
import type { KeyManagerChangeData } from '@/keys/types';
import os from 'os';
import path from 'path';
import fs from 'fs';
Expand All @@ -9,6 +10,7 @@ import { Status } from '@/status';
import { Schema } from '@/schema';
import * as errors from '@/errors';
import config from '@/config';
import { promise } from '@/utils/index';
import * as testUtils from './utils';

describe('PolykeyAgent', () => {
Expand Down Expand Up @@ -175,4 +177,76 @@ describe('PolykeyAgent', () => {
}),
).rejects.toThrow(errors.ErrorSchemaVersionTooOld);
});
test('renewRootKeyPair change event propagates', async () => {
const nodePath = `${dataDir}/polykey`;
let pkAgent: PolykeyAgent | undefined;
try {
pkAgent = await PolykeyAgent.createPolykeyAgent({
password,
nodePath,
logger,
});
const prom = promise<KeyManagerChangeData>();
pkAgent.events.on(
PolykeyAgent.eventSymbols.KeyManager,
async (data: KeyManagerChangeData) => {
prom.resolveP(data);
},
);
await pkAgent.keyManager.renewRootKeyPair(password);

await expect(prom.p).resolves.toBeDefined();
} finally {
await pkAgent?.stop();
await pkAgent?.destroy();
}
});
test('resetRootKeyPair change event propagates', async () => {
const nodePath = `${dataDir}/polykey`;
let pkAgent: PolykeyAgent | undefined;
try {
pkAgent = await PolykeyAgent.createPolykeyAgent({
password,
nodePath,
logger,
});
const prom = promise<KeyManagerChangeData>();
pkAgent.events.on(
PolykeyAgent.eventSymbols.KeyManager,
async (data: KeyManagerChangeData) => {
prom.resolveP(data);
},
);
await pkAgent.keyManager.resetRootKeyPair(password);

await expect(prom.p).resolves.toBeDefined();
} finally {
await pkAgent?.stop();
await pkAgent?.destroy();
}
});
test('resetRootCert change event propagates', async () => {
const nodePath = `${dataDir}/polykey`;
let pkAgent: PolykeyAgent | undefined;
try {
pkAgent = await PolykeyAgent.createPolykeyAgent({
password,
nodePath,
logger,
});
const prom = promise<KeyManagerChangeData>();
pkAgent.events.on(
PolykeyAgent.eventSymbols.KeyManager,
async (data: KeyManagerChangeData) => {
prom.resolveP(data);
},
);
await pkAgent.keyManager.resetRootCert();

await expect(prom.p).resolves.toBeDefined();
} finally {
await pkAgent?.stop();
await pkAgent?.destroy();
}
});
});
Loading

0 comments on commit 7269ae8

Please sign in to comment.