Files
objectstorage/test/test.container-lifecycle.test.ts

57 lines
2.0 KiB
TypeScript

import { assertEquals, assertExists } from 'jsr:@std/assert';
import { afterAll, beforeAll, describe, it } from 'jsr:@std/testing/bdd';
import { createTestContainer, getTestPorts } from './helpers/server.helper.ts';
import { ObjectStorageContainer } from '../ts/index.ts';
import { defaultConfig } from '../ts/types.ts';
const PORT_INDEX = 0;
const ports = getTestPorts(PORT_INDEX);
describe('ObjectStorageContainer lifecycle', { sanitizeResources: false, sanitizeOps: false }, () => {
let container: ObjectStorageContainer;
it('should create container with default config values', () => {
const c = new ObjectStorageContainer();
assertEquals(c.config.objstPort, defaultConfig.objstPort);
assertEquals(c.config.uiPort, defaultConfig.uiPort);
assertEquals(c.config.region, defaultConfig.region);
assertEquals(c.config.adminPassword, defaultConfig.adminPassword);
});
it('should create container with custom config overrides', () => {
container = createTestContainer(PORT_INDEX);
assertEquals(container.config.objstPort, ports.objstPort);
assertEquals(container.config.uiPort, ports.uiPort);
assertEquals(container.config.adminPassword, 'testpassword');
assertEquals(container.config.accessCredentials[0].accessKeyId, 'testkey');
});
it('should start successfully', async () => {
await container.start();
assertEquals(container.startedAt > 0, true);
});
it('should have s3Client initialized after start', () => {
assertExists(container.s3Client);
});
it('should have smartstorageInstance initialized after start', () => {
assertExists(container.smartstorageInstance);
});
it('should have policyManager with empty policies', () => {
assertExists(container.policyManager);
const policies = container.policyManager.listPolicies();
assertEquals(policies.length, 0);
});
it('should have opsServer started', () => {
assertExists(container.opsServer);
assertExists(container.opsServer.server);
});
it('should stop cleanly', async () => {
await container.stop();
});
});