32 lines
1.3 KiB
TypeScript
32 lines
1.3 KiB
TypeScript
import { tap, expect } from '@git.zone/tstest/tapbundle';
|
|
import * as plugins from '../ts/plugins.js';
|
|
import { SmartMtaStorageManager } from '../ts/email/index.js';
|
|
|
|
const tempDir = plugins.path.join(process.cwd(), '.nogit', 'test-smartmta-storage');
|
|
|
|
tap.test('SmartMtaStorageManager persists, lists, and deletes keys', async () => {
|
|
await plugins.fs.promises.rm(tempDir, { recursive: true, force: true });
|
|
|
|
const storageManager = new SmartMtaStorageManager(tempDir);
|
|
await storageManager.set('/email/dkim/example.com/default/metadata', 'metadata');
|
|
await storageManager.set('/email/dkim/example.com/default/public.key', 'public');
|
|
|
|
expect(await storageManager.get('/email/dkim/example.com/default/metadata')).toEqual('metadata');
|
|
|
|
const keys = await storageManager.list('/email/dkim/example.com/');
|
|
expect(keys).toEqual([
|
|
'/email/dkim/example.com/default/metadata',
|
|
'/email/dkim/example.com/default/public.key',
|
|
]);
|
|
|
|
await storageManager.delete('/email/dkim/example.com/default/metadata');
|
|
expect(await storageManager.get('/email/dkim/example.com/default/metadata')).toBeNull();
|
|
});
|
|
|
|
tap.test('cleanup', async () => {
|
|
await plugins.fs.promises.rm(tempDir, { recursive: true, force: true });
|
|
await tap.stopForcefully();
|
|
});
|
|
|
|
export default tap.start();
|