23 lines
1.1 KiB
JavaScript
23 lines
1.1 KiB
JavaScript
import assert from 'node:assert/strict';
|
|
import test from 'node:test';
|
|
|
|
import { createSavedViewService } from '../../src/modules/search/services/saved-view-service.js';
|
|
|
|
test('creates and merges a seller saved view through the repository', async () => {
|
|
const calls = [];
|
|
const service = createSavedViewService({
|
|
savedViewRepository: {
|
|
async create(sellerId, view) { calls.push([sellerId, view]); return { id: 'view-1', sellerId, ...view }; },
|
|
},
|
|
});
|
|
|
|
const result = await service.create({ sellerId: 'seller-1', view: { name: 'Needs Attention', filters: { status: 'ACTIVE', missingImages: true } } });
|
|
assert.deepEqual(result, { id: 'view-1', sellerId: 'seller-1', name: 'Needs Attention', filters: { status: 'ACTIVE', missingImages: true } });
|
|
assert.deepEqual(calls, [['seller-1', { name: 'Needs Attention', filters: { status: 'ACTIVE', missingImages: true } }]]);
|
|
});
|
|
|
|
test('rejects an unknown saved-view filter value', async () => {
|
|
const service = createSavedViewService({ savedViewRepository: {} });
|
|
await assert.rejects(() => service.create({ sellerId: 'seller-1', view: { name: 'Bad', filters: { query: { nested: true } } } }));
|
|
});
|