Skip to content

Commit

Permalink
Tests 🐶 (#578)
Browse files Browse the repository at this point in the history
fe tests
  • Loading branch information
sdevalapurkar authored Oct 8, 2021
1 parent 44e1efd commit 1bfc8c9
Show file tree
Hide file tree
Showing 6 changed files with 213 additions and 3 deletions.
48 changes: 48 additions & 0 deletions app/src/hooks/api/useObservationApi.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,33 @@ describe('useObservationApi', () => {
expect(result).toEqual({});
});

it('initiateXLSXSubmissionTransform works as expected', async () => {
const submissionId = 2;
mock.onPost(`/api/xlsx/transform`).reply(200, true);

const result = await useObservationApi(axios).initiateXLSXSubmissionTransform(submissionId);

expect(result).toEqual(true);
});

it('initiateXLSXSubmissionValidation works as expected', async () => {
const submissionId = 2;
mock.onPost(`/api/xlsx/validate`).reply(200, true);

const result = await useObservationApi(axios).initiateXLSXSubmissionValidation(submissionId);

expect(result).toEqual(true);
});

it('initiateDwCSubmissionValidation works as expected', async () => {
const submissionId = 2;
mock.onPost(`/api/dwc/validate`).reply(200, true);

const result = await useObservationApi(axios).initiateDwCSubmissionValidation(submissionId);

expect(result).toEqual(true);
});

it('getSubmissionCSVForView works as expected', async () => {
const submissionId = 2;
const data = [
Expand All @@ -112,4 +139,25 @@ describe('useObservationApi', () => {

expect(result.data[0].name).toEqual('name 1');
});

it('getOccurrencesForView works as expected', async () => {
const submissionId = 2;
const data = {
geometry: null,
taxonId: 'taxon123',
lifeStage: 'yearling',
vernacularName: 'vname',
individualCount: 23,
organismQuantity: 23,
organismQuantityType: 'Individual',
occurrenceId: 2,
eventDate: '2020/04/04'
};

mock.onPost(`/api/dwc/view-occurrences`).reply(200, data);

const result = await useObservationApi(axios).getOccurrencesForView(submissionId);

expect(result).toEqual(data);
});
});
8 changes: 6 additions & 2 deletions app/src/hooks/api/useObservationApi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -122,19 +122,23 @@ const useObservationApi = (axios: AxiosInstance) => {
* @param {number} submissionId
*/
const initiateDwCSubmissionValidation = async (submissionId: number) => {
axios.post(`/api/dwc/validate`, {
const { data } = await axios.post(`/api/dwc/validate`, {
occurrence_submission_id: submissionId
});

return data;
};

/**
* Initiate the validation process for the submitted XLSX observations
* @param {number} submissionId
*/
const initiateXLSXSubmissionValidation = async (submissionId: number) => {
axios.post(`/api/xlsx/validate`, {
const { data } = await axios.post(`/api/xlsx/validate`, {
occurrence_submission_id: submissionId
});

return data;
};

/**
Expand Down
34 changes: 34 additions & 0 deletions app/src/hooks/api/useProjectApi.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -260,4 +260,38 @@ describe('useProjectApi', () => {

expect(result).toEqual({ id: 1 });
});

it('getAttachmentSignedURL works as expected', async () => {
mock
.onPost(`/api/public/project/${projectId}/attachments/${attachmentId}/getSignedUrl`)
.reply(200, 'www.signedurl.com');

const result = await usePublicProjectApi(axios).getAttachmentSignedURL(projectId, attachmentId, 'Image');

expect(result).toEqual('www.signedurl.com');
});

it('getProjectAttachments works as expected', async () => {
mock.onGet(`/api/public/project/${projectId}/attachments/list`).reply(200, {
attachmentsList: [
{
id: 1,
fileName: 'filename',
lastModified: '2020/04/04',
size: 3028
}
]
});

const result = await usePublicProjectApi(axios).getProjectAttachments(projectId);

expect(result.attachmentsList).toEqual([
{
id: 1,
fileName: 'filename',
lastModified: '2020/04/04',
size: 3028
}
]);
});
});
31 changes: 30 additions & 1 deletion app/src/hooks/api/useSearchApi.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import axios from 'axios';
import MockAdapter from 'axios-mock-adapter';
import useSearchApi from './useSearchApi';
import useSearchApi, { usePublicSearchApi } from './useSearchApi';

describe('useSearchApi', () => {
let mock: any;
Expand Down Expand Up @@ -30,3 +30,32 @@ describe('useSearchApi', () => {
expect(result[0].id).toEqual('1');
});
});

describe('usePublicSearchApi', () => {
let mock: any;

beforeEach(() => {
mock = new MockAdapter(axios);
});

afterEach(() => {
mock.restore();
});

it('getSearchResults works as expected', async () => {
const res = [
{
id: '1',
name: 'name',
objectives: 'objectives',
geometry: []
}
];

mock.onGet('api/public/search').reply(200, res);

const result = await usePublicSearchApi(axios).getSearchResults();

expect(result[0].id).toEqual('1');
});
});
91 changes: 91 additions & 0 deletions app/src/hooks/api/useSurveyApi.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,18 @@ describe('useSurveyApi', () => {
expect(result).toEqual('result 1');
});

it('uploadSurveySummaryResults works as expected', async () => {
const file = new File(['foo'], 'foo.txt', {
type: 'text/plain'
});

mock.onPost(`/api/project/${projectId}/survey/${surveyId}/summary/submission/upload`).reply(200, 'result 1');

const result = await useSurveyApi(axios).uploadSurveySummaryResults(projectId, surveyId, file);

expect(result).toEqual('result 1');
});

it('updateSurvey works as expected', async () => {
const request = {
survey_details: {
Expand Down Expand Up @@ -196,6 +208,39 @@ describe('useSurveyApi', () => {
expect(result).toEqual(true);
});

it('getSurveySummarySubmission works as expected', async () => {
mock.onGet(`/api/project/${projectId}/survey/${surveyId}/summary/submission/get`).reply(200, {
id: 1,
fileName: 'name'
});

const result = await useSurveyApi(axios).getSurveySummarySubmission(projectId, surveyId);

expect(result).toEqual({
id: 1,
fileName: 'name'
});
});

it('getSubmissionCSVForView works as expected', async () => {
const summaryId = 2;
const resultData = {
data: {
name: 'name',
headers: [],
rows: [[]]
}
};

mock
.onGet(`/api/project/${projectId}/survey/${surveyId}/summary/submission/${summaryId}/view`)
.reply(200, resultData);

const result = await useSurveyApi(axios).getSubmissionCSVForView(projectId, surveyId, summaryId);

expect(result).toEqual(resultData);
});

it('getSurveyForUpdate works as expected', async () => {
const data = {
survey_details: {
Expand Down Expand Up @@ -231,4 +276,50 @@ describe('useSurveyApi', () => {

expect(result).toEqual('OK');
});

it('deleteSummarySubmission works as expected', async () => {
const summaryId = 2;

mock.onDelete(`/api/project/${projectId}/survey/${surveyId}/summary/submission/${summaryId}/delete`).reply(200, 1);

const result = await useSurveyApi(axios).deleteSummarySubmission(projectId, surveyId, summaryId);

expect(result).toEqual(1);
});

it('getSummarySubmissionSignedURL works as expected', async () => {
const summaryId = 2;

mock
.onGet(`/api/project/${projectId}/survey/${surveyId}/summary/submission/${summaryId}/getSignedUrl`)
.reply(200, 'url.com');

const result = await useSurveyApi(axios).getSummarySubmissionSignedURL(projectId, surveyId, summaryId);

expect(result).toEqual('url.com');
});

it('makeAttachmentUnsecure works as expected', async () => {
mock
.onPut(`/api/project/${projectId}/survey/${surveyId}/attachments/${attachmentId}/makeUnsecure`)
.reply(200, true);

const result = await useSurveyApi(axios).makeAttachmentUnsecure(
projectId,
surveyId,
attachmentId,
'token',
'Image'
);

expect(result).toEqual(true);
});

it('makeAttachmentSecure works as expected', async () => {
mock.onPut(`/api/project/${projectId}/survey/${surveyId}/attachments/${attachmentId}/makeSecure`).reply(200, true);

const result = await useSurveyApi(axios).makeAttachmentSecure(projectId, surveyId, attachmentId, 'Image');

expect(result).toEqual(true);
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ describe('PublicProjectAttachments', () => {
});

it('renders correctly with no attachments', () => {
mockBiohubApi().public.project.getProjectAttachments.mockResolvedValue({
attachmentsList: []
});

const { getByText } = render(
<Router history={history}>
<PublicProjectAttachments projectForViewData={getProjectForViewResponse} />
Expand Down

0 comments on commit 1bfc8c9

Please sign in to comment.