Files
wehub-resource-sync 7088f49b01
Build dist / build (push) Has been cancelled
CI / test (18.x) (push) Has been cancelled
CI / test (20.x) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:39:33 +08:00

117 lines
4.8 KiB
JavaScript

import { describe, it } from 'node:test';
import assert from 'node:assert';
import { resolveEffortLevel } from '../dist/effort.js';
describe('resolveEffortLevel', () => {
describe('stdin effort (future Claude Code support)', () => {
it('returns effort info when stdin provides effort level', () => {
const result = resolveEffortLevel('max');
assert.deepStrictEqual(result, { level: 'max', symbol: '●' });
});
it('normalizes effort level to lowercase', () => {
const result = resolveEffortLevel('HIGH');
assert.deepStrictEqual(result, { level: 'high', symbol: '◑' });
});
it('handles all known effort levels', () => {
assert.deepStrictEqual(resolveEffortLevel('low'), { level: 'low', symbol: '○' });
assert.deepStrictEqual(resolveEffortLevel('medium'), { level: 'medium', symbol: '◔' });
assert.deepStrictEqual(resolveEffortLevel('high'), { level: 'high', symbol: '◑' });
assert.deepStrictEqual(resolveEffortLevel('xhigh'), { level: 'xhigh', symbol: '◕' });
assert.deepStrictEqual(resolveEffortLevel('max'), { level: 'max', symbol: '●' });
});
it('wraps the reported level (not a hardcoded xhigh) when the marker is active', () => {
const result = resolveEffortLevel('max', { ultracodeActive: true });
assert.deepStrictEqual(result, { level: 'ultracode(max)', symbol: '●' });
});
it('annotates xhigh as ultracode(xhigh) when the transcript marker is active', () => {
const result = resolveEffortLevel('xhigh', { ultracodeActive: true });
assert.deepStrictEqual(result, { level: 'ultracode(xhigh)', symbol: '◕' });
});
it('keeps plain xhigh when the ultracode marker is inactive', () => {
const result = resolveEffortLevel('xhigh', { ultracodeActive: false });
assert.deepStrictEqual(result, { level: 'xhigh', symbol: '◕' });
});
it('keeps plain xhigh when no ultracode marker is present', () => {
const result = resolveEffortLevel('xhigh');
assert.deepStrictEqual(result, { level: 'xhigh', symbol: '◕' });
});
it('handles unknown future effort levels with empty symbol', () => {
const result = resolveEffortLevel('turbo');
assert.deepStrictEqual(result, { level: 'turbo', symbol: '' });
});
it('returns null when stdin effort is null', () => {
assert.strictEqual(resolveEffortLevel(null), null);
});
it('returns null when stdin effort is undefined', () => {
assert.strictEqual(resolveEffortLevel(undefined), null);
});
it('returns null for empty string', () => {
assert.strictEqual(resolveEffortLevel(''), null);
});
});
describe('stdin effort as object (Claude Code 2.1.115+ schema)', () => {
it('extracts level from object { level: "max" }', () => {
const result = resolveEffortLevel({ level: 'max' });
assert.deepStrictEqual(result, { level: 'max', symbol: '●' });
});
it('extracts and normalizes uppercase level from object', () => {
const result = resolveEffortLevel({ level: 'HIGH' });
assert.deepStrictEqual(result, { level: 'high', symbol: '◑' });
});
it('handles all known levels when wrapped in object', () => {
assert.deepStrictEqual(resolveEffortLevel({ level: 'low' }), { level: 'low', symbol: '○' });
assert.deepStrictEqual(resolveEffortLevel({ level: 'medium' }), { level: 'medium', symbol: '◔' });
assert.deepStrictEqual(resolveEffortLevel({ level: 'xhigh' }), { level: 'xhigh', symbol: '◕' });
});
it('annotates object xhigh as ultracode(xhigh) when the transcript marker is active', () => {
const result = resolveEffortLevel({ level: 'xhigh' }, { ultracodeActive: true });
assert.deepStrictEqual(result, { level: 'ultracode(xhigh)', symbol: '◕' });
});
it('tolerates extra fields in effort object (forward-compat)', () => {
const result = resolveEffortLevel({ level: 'max', budget: 32000, extra: 'ignored' });
assert.deepStrictEqual(result, { level: 'max', symbol: '●' });
});
it('returns null when object has no level field', () => {
assert.strictEqual(resolveEffortLevel({}), null);
});
it('returns null when object.level is null', () => {
assert.strictEqual(resolveEffortLevel({ level: null }), null);
});
it('returns null when object.level is not a string', () => {
assert.strictEqual(resolveEffortLevel({ level: 42 }), null);
});
});
describe('defensive handling of unexpected types (no crash)', () => {
it('returns null on numeric effort value', () => {
assert.strictEqual(resolveEffortLevel(42), null);
});
it('returns null on boolean effort value', () => {
assert.strictEqual(resolveEffortLevel(true), null);
});
it('returns null on array effort value', () => {
assert.strictEqual(resolveEffortLevel(['max']), null);
});
});
});