@furystack/filesystem-store
Version:
Simple File System store implementation for FuryStack
34 lines • 1.41 kB
JavaScript
import { StoreManager } from '@furystack/core';
import { TestClass } from '@furystack/core/create-physical-store-tests';
import { Injector } from '@furystack/inject';
import { usingAsync } from '@furystack/utils';
import { existsSync, promises } from 'fs';
import { afterAll, describe, expect, it } from 'vitest';
import { FileSystemStore } from './index.js';
import { useFileSystemStore } from './store-manager-helpers.js';
let storeCount = 0;
describe('FileSystemStore store manager extensions', () => {
const storeNames = [];
it('Should create a store with an extensions method from Store Manages', async () => {
await usingAsync(new Injector(), async (i) => {
const storeManager = i.getInstance(StoreManager);
const fileName = `filestore-test-${storeCount++}.json`;
storeNames.push(fileName);
useFileSystemStore({
injector: i,
model: TestClass,
fileName,
primaryKey: 'id',
});
expect(storeManager.getStoreFor(TestClass, 'id')).toBeInstanceOf(FileSystemStore);
});
});
afterAll(async () => {
await Promise.all(storeNames.map(async (fileName) => {
if (existsSync(fileName)) {
await promises.unlink(fileName);
}
}));
});
});
//# sourceMappingURL=store-manager-helpers.spec.js.map