Files
jhipster-question-bank/src/main/webapp/app/entities/exam-answer/exam-answer.service.spec.ts
T

178 lines
4.9 KiB
TypeScript

import { beforeEach, describe, expect, it, vi } from 'vitest';
import axios from 'axios';
import { ExamAnswer } from '@/shared/model/exam-answer.model';
import ExamAnswerService from './exam-answer.service';
const error = {
response: {
status: null,
data: {
type: null,
},
},
};
const axiosStub = {
get: vi.spyOn(axios, 'get'),
post: vi.spyOn(axios, 'post'),
put: vi.spyOn(axios, 'put'),
patch: vi.spyOn(axios, 'patch'),
delete: vi.spyOn(axios, 'delete'),
};
describe('Service Tests', () => {
describe('ExamAnswer Service', () => {
let service: ExamAnswerService;
let elemDefault;
beforeEach(() => {
service = new ExamAnswerService();
elemDefault = new ExamAnswer(123, 'AAAAAAA', 'AAAAAAA', 'A', 'AAAAAAA', false, 0);
});
describe('Service methods', () => {
it('should find an element', async () => {
const returnedFromService = { ...elemDefault };
axiosStub.get.mockResolvedValue({ data: returnedFromService });
return service.find(123).then(res => {
expect(res).toMatchObject(elemDefault);
});
});
it('should not find an element', async () => {
axiosStub.get.mockRejectedValue(error);
return service
.find(123)
.then()
.catch(err => {
expect(err).toMatchObject(error);
});
});
it('should create a ExamAnswer', async () => {
const returnedFromService = { id: 123, ...elemDefault };
const expected = { ...returnedFromService };
axiosStub.post.mockResolvedValue({ data: returnedFromService });
return service.create({}).then(res => {
expect(res).toMatchObject(expected);
});
});
it('should not create a ExamAnswer', async () => {
axiosStub.post.mockRejectedValue(error);
return service
.create({})
.then()
.catch(err => {
expect(err).toMatchObject(error);
});
});
it('should update a ExamAnswer', async () => {
const returnedFromService = {
questionTextSnapshot: 'BBBBBB',
explanationSnapshot: 'BBBBBB',
selectedOption: 'BBBBBB',
selectedContentSnapshot: 'BBBBBB',
correct: true,
awardedPoints: 1,
...elemDefault,
};
const expected = { ...returnedFromService };
axiosStub.put.mockResolvedValue({ data: returnedFromService });
return service.update(expected).then(res => {
expect(res).toMatchObject(expected);
});
});
it('should not update a ExamAnswer', async () => {
axiosStub.put.mockRejectedValue(error);
return service
.update({})
.then()
.catch(err => {
expect(err).toMatchObject(error);
});
});
it('should partial update a ExamAnswer', async () => {
const patchObject = { questionTextSnapshot: 'BBBBBB', explanationSnapshot: 'BBBBBB', ...new ExamAnswer() };
const returnedFromService = Object.assign(patchObject, elemDefault);
const expected = { ...returnedFromService };
axiosStub.patch.mockResolvedValue({ data: returnedFromService });
return service.partialUpdate(patchObject).then(res => {
expect(res).toMatchObject(expected);
});
});
it('should not partial update a ExamAnswer', async () => {
axiosStub.patch.mockRejectedValue(error);
return service
.partialUpdate({})
.then()
.catch(err => {
expect(err).toMatchObject(error);
});
});
it('should return a list of ExamAnswer', async () => {
const returnedFromService = {
questionTextSnapshot: 'BBBBBB',
explanationSnapshot: 'BBBBBB',
selectedOption: 'BBBBBB',
selectedContentSnapshot: 'BBBBBB',
correct: true,
awardedPoints: 1,
...elemDefault,
};
const expected = { ...returnedFromService };
axiosStub.get.mockResolvedValue([returnedFromService]);
return service.retrieve().then(res => {
expect(res).toContainEqual(expected);
});
});
it('should not return a list of ExamAnswer', async () => {
axiosStub.get.mockRejectedValue(error);
return service
.retrieve()
.then()
.catch(err => {
expect(err).toMatchObject(error);
});
});
it('should delete a ExamAnswer', async () => {
axiosStub.delete.mockResolvedValue({ ok: true });
return service.delete(123).then(res => {
expect(res.ok).toBeTruthy();
});
});
it('should not delete a ExamAnswer', async () => {
axiosStub.delete.mockRejectedValue(error);
return service
.delete(123)
.then()
.catch(err => {
expect(err).toMatchObject(error);
});
});
});
});
});