26 lines
1.1 KiB
JavaScript
26 lines
1.1 KiB
JavaScript
// tools/receipt-key-config.test.mjs
|
|
import { describe, it, expect } from 'vitest';
|
|
import { resolveReceiptKey } from './receipt-key-config.mjs';
|
|
|
|
describe('resolveReceiptKey', () => {
|
|
it('returns keychain key when present', () => {
|
|
const r = resolveReceiptKey({ env: {}, keychainGet: () => 'k-from-chain' });
|
|
expect(r).toBe('k-from-chain');
|
|
});
|
|
it('falls back to env ROUTER_MENTOR_RECEIPT_KEY when keychain empty', () => {
|
|
const r = resolveReceiptKey({ env: { ROUTER_MENTOR_RECEIPT_KEY: 'k-env' }, keychainGet: () => null });
|
|
expect(r).toBe('k-env');
|
|
});
|
|
it('prefers keychain over env', () => {
|
|
const r = resolveReceiptKey({ env: { ROUTER_MENTOR_RECEIPT_KEY: 'k-env' }, keychainGet: () => 'k-chain' });
|
|
expect(r).toBe('k-chain');
|
|
});
|
|
it('returns null when neither present', () => {
|
|
expect(resolveReceiptKey({ env: {}, keychainGet: () => null })).toBe(null);
|
|
});
|
|
it('never throws when keychainGet throws → null', () => {
|
|
const r = resolveReceiptKey({ env: {}, keychainGet: () => { throw new Error('boom'); } });
|
|
expect(r).toBe(null);
|
|
});
|
|
});
|