131 lines
4.3 KiB
JavaScript
131 lines
4.3 KiB
JavaScript
const { describe, it } = require('node:test');
|
|
const assert = require('node:assert/strict');
|
|
const { shouldSkipHubCalls } = require('../src/evolve');
|
|
|
|
describe('shouldSkipHubCalls', () => {
|
|
it('returns false when no saturation signals', () => {
|
|
assert.equal(shouldSkipHubCalls(['log_error', 'stable_success_plateau']), false);
|
|
});
|
|
|
|
it('returns false for non-array input', () => {
|
|
assert.equal(shouldSkipHubCalls(null), false);
|
|
assert.equal(shouldSkipHubCalls(undefined), false);
|
|
assert.equal(shouldSkipHubCalls('force_steady_state'), false);
|
|
});
|
|
|
|
it('returns true when only saturation signals are present', () => {
|
|
assert.equal(shouldSkipHubCalls([
|
|
'force_steady_state', 'evolution_saturation', 'stable_success_plateau',
|
|
]), true);
|
|
});
|
|
|
|
it('returns true for evolution_saturation alone', () => {
|
|
assert.equal(shouldSkipHubCalls(['evolution_saturation']), true);
|
|
});
|
|
|
|
it('returns true for empty_cycle_loop_detected + stable_success_plateau', () => {
|
|
assert.equal(shouldSkipHubCalls([
|
|
'empty_cycle_loop_detected', 'stable_success_plateau',
|
|
]), true);
|
|
});
|
|
|
|
it('returns false when log_error coexists with saturation', () => {
|
|
assert.equal(shouldSkipHubCalls([
|
|
'force_steady_state', 'evolution_saturation', 'log_error',
|
|
]), false);
|
|
});
|
|
|
|
it('returns false when errsig: coexists with saturation', () => {
|
|
assert.equal(shouldSkipHubCalls([
|
|
'evolution_saturation', 'errsig:TypeError: foo is not a function',
|
|
]), false);
|
|
});
|
|
|
|
it('returns false when recurring_error coexists with saturation', () => {
|
|
assert.equal(shouldSkipHubCalls([
|
|
'force_steady_state', 'recurring_error',
|
|
]), false);
|
|
});
|
|
|
|
it('returns false when external_task coexists with saturation', () => {
|
|
assert.equal(shouldSkipHubCalls([
|
|
'force_steady_state', 'evolution_saturation', 'external_task',
|
|
]), false);
|
|
});
|
|
|
|
it('returns false when bounty_task coexists with saturation', () => {
|
|
assert.equal(shouldSkipHubCalls([
|
|
'evolution_saturation', 'bounty_task',
|
|
]), false);
|
|
});
|
|
|
|
it('returns false when overdue_task coexists with saturation', () => {
|
|
assert.equal(shouldSkipHubCalls([
|
|
'force_steady_state', 'overdue_task',
|
|
]), false);
|
|
});
|
|
|
|
it('returns false when urgent coexists with saturation', () => {
|
|
assert.equal(shouldSkipHubCalls([
|
|
'evolution_saturation', 'urgent',
|
|
]), false);
|
|
});
|
|
|
|
it('returns false when capability_gap coexists with saturation', () => {
|
|
assert.equal(shouldSkipHubCalls([
|
|
'force_steady_state', 'capability_gap',
|
|
]), false);
|
|
});
|
|
|
|
it('returns false when perf_bottleneck coexists with saturation', () => {
|
|
assert.equal(shouldSkipHubCalls([
|
|
'empty_cycle_loop_detected', 'perf_bottleneck',
|
|
]), false);
|
|
});
|
|
|
|
it('returns false when user_feature_request has content', () => {
|
|
assert.equal(shouldSkipHubCalls([
|
|
'force_steady_state', 'user_feature_request:add dark mode',
|
|
]), false);
|
|
});
|
|
|
|
it('returns true when user_feature_request is empty (no real request)', () => {
|
|
assert.equal(shouldSkipHubCalls([
|
|
'force_steady_state', 'user_feature_request:',
|
|
]), true);
|
|
});
|
|
|
|
it('returns false when user_improvement_suggestion has content', () => {
|
|
assert.equal(shouldSkipHubCalls([
|
|
'evolution_saturation', 'user_improvement_suggestion:refactor the API',
|
|
]), false);
|
|
});
|
|
|
|
it('returns true when user_improvement_suggestion is empty', () => {
|
|
assert.equal(shouldSkipHubCalls([
|
|
'evolution_saturation', 'user_improvement_suggestion:',
|
|
]), true);
|
|
});
|
|
|
|
it('returns false when unsupported_input_type coexists with saturation', () => {
|
|
assert.equal(shouldSkipHubCalls([
|
|
'force_steady_state', 'unsupported_input_type',
|
|
]), false);
|
|
});
|
|
|
|
it('returns true for typical idle scenario from user report', () => {
|
|
assert.equal(shouldSkipHubCalls([
|
|
'evolution_saturation', 'force_steady_state',
|
|
'empty_cycle_loop_detected', 'stable_success_plateau',
|
|
]), true);
|
|
});
|
|
|
|
it('returns false for empty signals array (no saturation indicator)', () => {
|
|
assert.equal(shouldSkipHubCalls([]), false);
|
|
});
|
|
|
|
it('returns false when only stable_success_plateau without saturation indicators', () => {
|
|
assert.equal(shouldSkipHubCalls(['stable_success_plateau']), false);
|
|
});
|
|
});
|