Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tests 🐶 #578

Merged
merged 11 commits into from
Oct 8, 2021
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