* H-289: add Captain Skill management UI * H-289: guard Captain Skill assistant switches --------- Co-authored-by: Rogee <rogee@ipao.vip>
57 lines
1.6 KiB
JavaScript
57 lines
1.6 KiB
JavaScript
import CaptainSkillsAPI from '../skills';
|
|
import ApiClient from '../../ApiClient';
|
|
|
|
describe('#CaptainSkillsAPI', () => {
|
|
beforeEach(() => {
|
|
window.history.pushState({}, '', '/app/accounts/7/captain/2/skills');
|
|
global.axios = {
|
|
get: vi.fn(),
|
|
post: vi.fn(),
|
|
put: vi.fn(),
|
|
delete: vi.fn(),
|
|
};
|
|
});
|
|
|
|
it('uses the account skill management endpoints', () => {
|
|
CaptainSkillsAPI.get({ assistantId: 2 });
|
|
CaptainSkillsAPI.show(3);
|
|
CaptainSkillsAPI.create({ name: 'Refunds' });
|
|
CaptainSkillsAPI.update(3, { expected_version: 1 });
|
|
CaptainSkillsAPI.delete(3);
|
|
|
|
expect(axios.get).toHaveBeenNthCalledWith(
|
|
1,
|
|
'/api/v1/accounts/7/captain/skills',
|
|
{ params: { assistant_id: 2 } }
|
|
);
|
|
expect(axios.get).toHaveBeenNthCalledWith(
|
|
2,
|
|
'/api/v1/accounts/7/captain/skills/3'
|
|
);
|
|
expect(axios.post).toHaveBeenCalledWith(
|
|
'/api/v1/accounts/7/captain/skills',
|
|
{ skill: { name: 'Refunds' } }
|
|
);
|
|
expect(axios.put).toHaveBeenCalledWith(
|
|
'/api/v1/accounts/7/captain/skills/3',
|
|
{ skill: { expected_version: 1 } }
|
|
);
|
|
expect(axios.delete).toHaveBeenCalledWith(
|
|
'/api/v1/accounts/7/captain/skills/3'
|
|
);
|
|
});
|
|
|
|
it('binds and unbinds a skill for one assistant', () => {
|
|
CaptainSkillsAPI.bind({ assistantId: 2, skillId: 3 });
|
|
CaptainSkillsAPI.unbind({ assistantId: 2, skillId: 3 });
|
|
|
|
const url = '/api/v1/accounts/7/captain/assistants/2/skills/3';
|
|
expect(axios.post).toHaveBeenCalledWith(url);
|
|
expect(axios.delete).toHaveBeenCalledWith(url);
|
|
});
|
|
|
|
it('is an account-scoped API client', () => {
|
|
expect(CaptainSkillsAPI).toBeInstanceOf(ApiClient);
|
|
});
|
|
});
|