forked from lunanting/cangku
36 lines
1.3 KiB
JavaScript
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, '');
|
|
});
|