Files
bitvid/tests/nostr/utils.test.mjs
T
google-labs-jules[bot]andPR0M3TH3AN 6058b632ba test(ai): add unit tests for js/nostr/utils.js (test-coverage-agent)
Added focused unit tests for `getActiveKey` in `js/nostr/utils.js` to improve test coverage.
This module was identified as having 0% coverage.
The new tests cover all branches:
- ROOT key generation
- pubkey:d key generation
- LEGACY key fallback
- Handling of missing/empty tags

Artifacts:
- tests/nostr/utils.test.mjs
- docs/agents/task-logs/weekly/2026-02-25_test-coverage-agent_completed.md

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-25 01:32:06 +00:00

63 lines
1.7 KiB
JavaScript

/**
* @file tests/nostr/utils.test.mjs
* @description Unit tests for js/nostr/utils.js
*/
import { test, describe } from 'node:test';
import assert from 'node:assert';
import { getActiveKey } from '../../js/nostr/utils.js';
describe('js/nostr/utils.js', () => {
describe('getActiveKey', () => {
test('returns ROOT key when videoRootId is present', () => {
const video = {
videoRootId: 'root-123',
id: 'note-456',
pubkey: 'pk1',
tags: [['d', 'd-tag-val']]
};
const key = getActiveKey(video);
assert.strictEqual(key, 'ROOT:root-123');
});
test('returns pubkey:d key when videoRootId is missing but d-tag exists', () => {
const video = {
id: 'note-456',
pubkey: 'pk1',
tags: [['d', 'd-tag-val']]
};
const key = getActiveKey(video);
assert.strictEqual(key, 'pk1:d-tag-val');
});
test('returns LEGACY key when videoRootId and d-tag are missing', () => {
const video = {
id: 'note-456',
pubkey: 'pk1',
tags: [['t', 'hashtag']]
};
const key = getActiveKey(video);
assert.strictEqual(key, 'LEGACY:note-456');
});
test('handles missing tags array gracefully (returns LEGACY)', () => {
const video = {
id: 'note-789',
pubkey: 'pk2'
};
const key = getActiveKey(video);
assert.strictEqual(key, 'LEGACY:note-789');
});
test('handles empty tags array gracefully (returns LEGACY)', () => {
const video = {
id: 'note-789',
pubkey: 'pk2',
tags: []
};
const key = getActiveKey(video);
assert.strictEqual(key, 'LEGACY:note-789');
});
});
});