32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
|
import { tap, expect } from '@push.rocks/tapbundle';
|
||
|
import { SmartAcme } from '../ts/index.js';
|
||
|
import type { IChallengeHandler } from '../ts/handlers/IChallengeHandler.js';
|
||
|
|
||
|
// Dummy handler for testing
|
||
|
class DummyHandler implements IChallengeHandler<any> {
|
||
|
getSupportedTypes(): string[] { return ['dns-01']; }
|
||
|
async prepare(_: any): Promise<void> { /* no-op */ }
|
||
|
async cleanup(_: any): Promise<void> { /* no-op */ }
|
||
|
}
|
||
|
|
||
|
tap.test('constructor throws without challengeHandlers', async () => {
|
||
|
expect(() => new SmartAcme({
|
||
|
accountEmail: 'test@example.com',
|
||
|
mongoDescriptor: { mongoDbName: 'db', mongoDbPass: 'pass', mongoDbUrl: 'url' },
|
||
|
environment: 'integration',
|
||
|
retryOptions: {},
|
||
|
} as any)).toThrow();
|
||
|
});
|
||
|
|
||
|
tap.test('constructor accepts valid challengeHandlers', async () => {
|
||
|
const sa = new SmartAcme({
|
||
|
accountEmail: 'test@example.com',
|
||
|
mongoDescriptor: { mongoDbName: 'db', mongoDbPass: 'pass', mongoDbUrl: 'url' },
|
||
|
environment: 'integration',
|
||
|
retryOptions: {},
|
||
|
challengeHandlers: [new DummyHandler()],
|
||
|
});
|
||
|
expect(sa).toBeInstanceOf(SmartAcme);
|
||
|
});
|
||
|
|
||
|
export default tap.start();
|