feat: 产品视图模型添加状态

- 产品状态:从Directus Schema获取Product的Status字段
- 视图字段:添加Status字段用于标示产品状态
- 测试方法:为Status字段添加单元测试
This commit is contained in:
2025-12-10 13:35:00 +08:00
parent e02f975217
commit 62ec215340
3 changed files with 44 additions and 10 deletions

View File

@ -456,21 +456,26 @@ describe('toProductDocumentView', () => {
* 单元测试: toProductView
*/
describe('toProductView', () => {
const baseData: Product = {
id: 1,
status: 'in-production',
translations: [
{
id: 1,
name: 'Product Name',
summary: 'Product Summary',
description: 'Product Description',
},
],
};
test('convert raw data to ProductView correctly', () => {
const rawData: Product = {
id: 1,
translations: [
{
id: 1,
name: 'Product Name',
summary: 'Product Summary',
description: 'Product Description',
},
],
...baseData,
};
expect(toProductView(rawData)).toEqual({
id: '1',
status: 'in-production',
name: 'Product Name',
summary: 'Product Summary',
description: 'Product Description',
@ -483,12 +488,13 @@ describe('toProductView', () => {
test('convert raw data with missing translations', () => {
const rawData: Product = {
id: 1,
...baseData,
translations: [],
};
expect(toProductView(rawData)).toEqual({
id: '1',
status: 'in-production',
name: '',
summary: '',
description: '',
@ -498,4 +504,23 @@ describe('toProductView', () => {
specs: [],
});
});
test('conert raw data with missing status', () => {
const rawData: Product = {
...baseData,
status: undefined,
};
expect(toProductView(rawData)).toEqual({
id: '1',
status: 'discontinued',
name: 'Product Name',
summary: 'Product Summary',
description: 'Product Description',
images: [],
documents: [],
faqs: [],
specs: [],
});
});
});