@vue-skuilder/db 0.1.32-e → 0.1.32-f

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,7 @@ import { describe, it, expect, vi, beforeEach } from 'vitest';
2
2
  import { Pipeline } from '../../../src/core/navigators/Pipeline';
3
3
  import { WeightedCard, ContentNavigator } from '../../../src/core/navigators/index';
4
4
  import { CardFilter, FilterContext } from '../../../src/core/navigators/filters/types';
5
+ import type { GeneratorResult } from '../../../src/core/navigators/generators/types';
5
6
 
6
7
  import { CourseDBInterface } from '../../../src/core/interfaces/courseDB';
7
8
  import { UserDBInterface } from '../../../src/core/interfaces/userDB';
@@ -22,8 +23,8 @@ class MockGenerator extends ContentNavigator {
22
23
  this.cards = cards;
23
24
  }
24
25
 
25
- async getWeightedCards(limit: number): Promise<WeightedCard[]> {
26
- return this.cards.slice(0, limit);
26
+ async getWeightedCards(limit: number): Promise<GeneratorResult> {
27
+ return { cards: this.cards.slice(0, limit) };
27
28
  }
28
29
  }
29
30
 
@@ -143,7 +144,7 @@ describe('Pipeline', () => {
143
144
  const generator = new MockGenerator(cards);
144
145
  const pipeline = new Pipeline(generator, [], mockUser, mockCourse);
145
146
 
146
- const result = await pipeline.getWeightedCards(10);
147
+ const { cards: result } = await pipeline.getWeightedCards(10);
147
148
 
148
149
  expect(result).toHaveLength(2);
149
150
  expect(result[0].cardId).toBe('card-1');
@@ -155,7 +156,7 @@ describe('Pipeline', () => {
155
156
  const generator = new MockGenerator(cards);
156
157
  const pipeline = new Pipeline(generator, [], mockUser, mockCourse);
157
158
 
158
- const result = await pipeline.getWeightedCards(10);
159
+ const { cards: result } = await pipeline.getWeightedCards(10);
159
160
 
160
161
  expect(result[0].cardId).toBe('high');
161
162
  expect(result[1].cardId).toBe('mid');
@@ -172,7 +173,7 @@ describe('Pipeline', () => {
172
173
  const generator = new MockGenerator(cards);
173
174
  const pipeline = new Pipeline(generator, [], mockUser, mockCourse);
174
175
 
175
- const result = await pipeline.getWeightedCards(2);
176
+ const { cards: result } = await pipeline.getWeightedCards(2);
176
177
 
177
178
  expect(result).toHaveLength(2);
178
179
  expect(result[0].cardId).toBe('card-1');
@@ -183,7 +184,7 @@ describe('Pipeline', () => {
183
184
  const generator = new MockGenerator([]);
184
185
  const pipeline = new Pipeline(generator, [], mockUser, mockCourse);
185
186
 
186
- const result = await pipeline.getWeightedCards(10);
187
+ const { cards: result } = await pipeline.getWeightedCards(10);
187
188
 
188
189
  expect(result).toHaveLength(0);
189
190
  });
@@ -196,7 +197,7 @@ describe('Pipeline', () => {
196
197
  const filter = createMultiplierFilter('Half', 0.5);
197
198
  const pipeline = new Pipeline(generator, [filter], mockUser, mockCourse);
198
199
 
199
- const result = await pipeline.getWeightedCards(10);
200
+ const { cards: result } = await pipeline.getWeightedCards(10);
200
201
 
201
202
  expect(result[0].score).toBe(0.5); // 1.0 * 0.5
202
203
  expect(result[1].score).toBe(0.4); // 0.8 * 0.5
@@ -209,7 +210,7 @@ describe('Pipeline', () => {
209
210
  const filter2 = createMultiplierFilter('Double', 2.0);
210
211
  const pipeline = new Pipeline(generator, [filter1, filter2], mockUser, mockCourse);
211
212
 
212
- const result = await pipeline.getWeightedCards(10);
213
+ const { cards: result } = await pipeline.getWeightedCards(10);
213
214
 
214
215
  // 1.0 * 0.5 * 2.0 = 1.0
215
216
  expect(result[0].score).toBe(1.0);
@@ -221,7 +222,7 @@ describe('Pipeline', () => {
221
222
  const filter = createBlockingFilter('Blocker', ['block']);
222
223
  const pipeline = new Pipeline(generator, [filter], mockUser, mockCourse);
223
224
 
224
- const result = await pipeline.getWeightedCards(10);
225
+ const { cards: result } = await pipeline.getWeightedCards(10);
225
226
 
226
227
  expect(result).toHaveLength(1);
227
228
  expect(result[0].cardId).toBe('keep');
@@ -234,7 +235,7 @@ describe('Pipeline', () => {
234
235
  const filter2 = createMultiplierFilter('Filter B', 0.8);
235
236
  const pipeline = new Pipeline(generator, [filter1, filter2], mockUser, mockCourse);
236
237
 
237
- const result = await pipeline.getWeightedCards(10);
238
+ const { cards: result } = await pipeline.getWeightedCards(10);
238
239
 
239
240
  expect(result[0].provenance).toHaveLength(3); // generator + 2 filters
240
241
  expect(result[0].provenance[0].strategyName).toBe('Test Generator');
@@ -253,12 +254,12 @@ describe('Pipeline', () => {
253
254
  // Order: A then B
254
255
  const generator1 = new MockGenerator([...cards]);
255
256
  const pipeline1 = new Pipeline(generator1, [filterA, filterB], mockUser, mockCourse);
256
- const result1 = await pipeline1.getWeightedCards(10);
257
+ const { cards: result1 } = await pipeline1.getWeightedCards(10);
257
258
 
258
259
  // Order: B then A
259
260
  const generator2 = new MockGenerator([...cards]);
260
261
  const pipeline2 = new Pipeline(generator2, [filterB, filterA], mockUser, mockCourse);
261
- const result2 = await pipeline2.getWeightedCards(10);
262
+ const { cards: result2 } = await pipeline2.getWeightedCards(10);
262
263
 
263
264
  // Both should yield 1.0 * 0.5 * 0.8 = 0.4
264
265
  expect(result1[0].score).toBeCloseTo(0.4);