47 lines
1.9 KiB
TypeScript
47 lines
1.9 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { sameOriginGroup, truncateToProcess } from './origin-name';
|
|
|
|
describe('truncateToProcess', () => {
|
|
it('keeps first 3 dash segments (drops warehouse)', () => {
|
|
expect(truncateToProcess('美国(包邮)180g纯棉T恤成人款-DG001-单面印花-美西洛杉矶一仓'))
|
|
.toBe('美国(包邮)180g纯棉T恤成人款-DG001-单面印花');
|
|
});
|
|
it('is identity for 3-segment names', () => {
|
|
expect(truncateToProcess('美国(不包邮)230g水洗炒雪花T恤-KRHM003-直喷双面'))
|
|
.toBe('美国(不包邮)230g水洗炒雪花T恤-KRHM003-直喷双面');
|
|
});
|
|
it('handles malformed names without country prefix', () => {
|
|
expect(truncateToProcess('(不包邮)230g水洗炒雪花T恤-FRTM001-双面印花'))
|
|
.toBe('(不包邮)230g水洗炒雪花T恤-FRTM001-双面印花');
|
|
});
|
|
it('returns empty for null/empty', () => {
|
|
expect(truncateToProcess(null)).toBe('');
|
|
expect(truncateToProcess('')).toBe('');
|
|
});
|
|
});
|
|
|
|
describe('sameOriginGroup', () => {
|
|
it('matches same product across warehouses', () => {
|
|
expect(sameOriginGroup(
|
|
'美国(包邮)180g纯棉T恤成人款-DG001-单面印花-美西洛杉矶一仓',
|
|
'美国(包邮)180g纯棉T恤成人款-DG001-单面印花-美中亚特兰大仓',
|
|
)).toBe(true);
|
|
});
|
|
it('does not match different SKU', () => {
|
|
expect(sameOriginGroup(
|
|
'美国(包邮)180g纯棉T恤成人款-DG001-单面印花',
|
|
'美国(包邮)180g纯棉T恤成人款-DG002-单面印花',
|
|
)).toBe(false);
|
|
});
|
|
it('does not match different country', () => {
|
|
expect(sameOriginGroup(
|
|
'美国(包邮)T恤-DG001-单面印花',
|
|
'德国(不包邮)T恤-DG001-单面印花',
|
|
)).toBe(false);
|
|
});
|
|
it('does not match empty names', () => {
|
|
expect(sameOriginGroup(null, 'x-y-z')).toBe(false);
|
|
expect(sameOriginGroup('', '')).toBe(false);
|
|
});
|
|
});
|