import { describe, expect, it } from 'vitest'; import { isConcreteShippingDistrict, isPseudoShippingDistrict, shippingDetailCityWideHint, validateShippingAddress, } from './shipping-address'; describe('shipping address', () => { it('rejects pseudo districts', () => { expect(isPseudoShippingDistrict('全市')).toBe(true); expect(isPseudoShippingDistrict('全部')).toBe(true); expect(isPseudoShippingDistrict('')).toBe(true); expect(isConcreteShippingDistrict('金水区')).toBe(true); }); it('requires concrete district and detail length', () => { expect( validateShippingAddress({ province: '河南省', city: '郑州市', district: '全市', detail: '上馆子信阳菜尚购生活广场店', }).ok, ).toBe(false); expect( validateShippingAddress({ province: '河南省', city: '郑州市', district: '金水区', detail: '短', }).message, ).toMatch(/详细/); expect( validateShippingAddress({ province: '河南省', city: '郑州市', district: '金水区', detail: '沙口路8号院尚购生活广场', }).ok, ).toBe(true); }); it('soft-hints bare 全市 in detail', () => { expect(shippingDetailCityWideHint('河南省郑州市全市上馆子')).toBeTruthy(); expect(shippingDetailCityWideHint('金水区沙口路8号')).toBeNull(); }); });