File size: 1,054 Bytes
1f5ea39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import { describe, it, expect, vi } from 'vitest';
import { AddonsController } from '../../../src/nest/addons/addons.controller';
import type { AddonsService } from '../../../src/nest/addons/addons.service';

function makeService(overrides: Partial<AddonsService> = {}): AddonsService {
  return {
    list: vi.fn().mockReturnValue({ collabFeatures: {}, bagTracking: false, addons: [] }),
    ...overrides,
  } as unknown as AddonsService;
}

describe('AddonsController (parity with the legacy GET /api/addons route)', () => {
  it('GET / delegates straight to the service and returns its feed', () => {
    const feed = {
      collabFeatures: { comments: true },
      bagTracking: true,
      addons: [{ id: 'atlas', name: 'Atlas', type: 'page', icon: 'globe', enabled: true }],
    };
    const list = vi.fn().mockReturnValue(feed);
    const svc = makeService({ list } as Partial<AddonsService>);

    expect(new AddonsController(svc).list()).toBe(feed);
    expect(list).toHaveBeenCalledTimes(1);
    expect(list).toHaveBeenCalledWith();
  });
});