cangku/backend/test/productQualitySignal.test.js

36 lines
1.3 KiB
JavaScript

const assert = require('node:assert/strict');
const test = require('node:test');
const {
resolveQualityRefundSignal,
resolveQualityRefundStage,
} = require('../src/services/productQualitySignal');
test('quality refund stages map to the PDD peer ranking labels', () => {
assert.deepEqual(resolveQualityRefundStage(1), {
stage: 1,
label: '处于同行后10%',
status: 'red',
severity: 3,
});
assert.equal(resolveQualityRefundStage(2).status, 'yellow');
assert.equal(resolveQualityRefundStage(3).status, 'green');
assert.equal(resolveQualityRefundStage(4).status, 'green');
assert.equal(resolveQualityRefundStage(null), null);
});
test('quality refund signal only uses the main category rank', () => {
const yellow = resolveQualityRefundSignal(1, 2);
assert.equal(yellow.status, 'yellow');
assert.equal(yellow.mainCategoryLabel, '处于同行后30%');
assert.match(yellow.reason, /主营类目处于同行后30%/);
const red = resolveQualityRefundSignal(4, 1);
assert.equal(red.status, 'red');
assert.match(red.reason, /显示红灯/);
assert.equal(resolveQualityRefundSignal(1, 4).status, 'green');
assert.equal(resolveQualityRefundSignal(1, null).status, '');
assert.equal(resolveQualityRefundSignal(null, null).status, '');
});