UNPKG

@justalk/covid19ph-api

Version:

API for COVID 19 Cases in the Philippines

143 lines (132 loc) 4.45 kB
const test = require('ava'); const dbs = { create: data => { return data; }, create_many: datas => { return datas; }, get_all: (find, sort, limit) => { return [find, sort, limit]; } }; const m = require('../../../src/server/services/cases')(dbs); test('[STATIC] Testing the services create model with perfect data', async t => { const date = new Date(); const a_case = await m.create_model({ case_code: 'CC123C', age: 22, sex: 'M', date_start_case: date, date_result_release: date, date_result_positive: date, date_recover: date, date_died: date, status: 'DIED', quarantined: false, pregnant: false, region: 'RIZAL', city: 'ANTIPOLO' }); t.is(a_case.case_code, 'CC123C'); t.is(a_case.age, 22); t.is(a_case.sex, 'M'); t.is(a_case.date_start_case, date); t.is(a_case.date_result_release, date); t.is(a_case.date_result_positive, date); t.is(a_case.date_recover, date); t.is(a_case.date_died, date); t.is(a_case.status, 'DIED'); t.is(a_case.quarantined, false); t.is(a_case.pregnant, false); t.is(a_case.region, 'RIZAL'); t.is(a_case.city, 'ANTIPOLO'); }); test('[STATIC] Testing the services create dbs', async t => { const data = {case_code: 'CC123C'}; const a_case = await m.create(data); t.is(a_case.case_code, 'CC123C'); }); test('[STATIC] Testing the services create many dbs', async t => { const data = [{case_code: 'CC123C'}, {case_code: 'CC1895C'}]; const many_cases = await m.create_many(data); t.is(many_cases[0].case_code, 'CC123C'); t.is(many_cases[1].case_code, 'CC1895C'); }); test('[STATIC] Testing the services get_all dbs', async t => { const prepare_query = await m.get_all([['age', 20, 'lower'], ['sex', 'M', 'equal']]); t.is(prepare_query[0].$and[0].age.$gte, 20); t.is(prepare_query[0].$and[1].sex.$eq, 'M'); }); test('[STATIC] Testing the create_cluster', async t => { let clusters = await m.create_cluster([], {case_code: 'JSDJ65461'}, 2); t.is(clusters.length, 1); t.is(clusters[0].case_code, 'JSDJ65461'); clusters = await m.create_cluster(clusters, {case_code: 'JSDDSFKL546'}, 2); t.is(clusters.length, 2); t.is(clusters[0].case_code, 'JSDJ65461'); t.is(clusters[1].case_code, 'JSDDSFKL546'); clusters = await m.create_cluster(clusters, {case_code: 'SDDVD56465'}, 2); t.is(clusters.length, 0); clusters = await m.create_cluster(clusters, {case_code: 'SDDVD8465'}, 2); t.is(clusters.length, 1); t.is(clusters[0].case_code, 'SDDVD8465'); }); test('[STATIC] Testing the create_cluster with error on first parameter', async t => { const clusters = await m.create_cluster(null, {case_code: 'JSDJ65461'}); t.is(clusters, null); }); test('[STATIC] Testing the create_cluster with error on second parameter', async t => { const clusters = await m.create_cluster([], null); t.is(clusters, null); }); test('[STATIC] Testing the create_cluster with first parameter not array', async t => { const clusters = await m.create_cluster('aaa', {case_code: 'JS51651'}); t.is(clusters.length, 1); t.is(clusters[0].case_code, 'JS51651'); }); test('[STATIC] Testing the create_data_from_row', async t => { const date = new Date(); const row = { CaseCode: 'CC123C', Age: 22, Sex: 'MALE', DateSpecimen: date, DateResultRelease: date, DateRepConf: date, DateRecover: date, DateDied: date, HealthStatus: 'DIED', Quarantined: false, Pregnanttab: false, RegionRes: 'RIZAL', CityMunRes: 'ANTIPOLO' }; const data = await m.create_data_from_row(row); t.is(data.case_code, 'CC123C'); t.is(data.age, 22); t.is(data.sex, 'M'); t.is(data.date_start_case, date); t.is(data.date_result_release, date); t.is(data.date_result_positive, date); t.is(data.date_recover, date); t.is(data.date_died, date); t.is(data.status, 'DIED'); t.is(data.quarantined, false); t.is(data.pregnant, false); t.is(data.region, 'RIZAL'); t.is(data.city, 'ANTIPOLO'); }); test('[STATIC] Testing the create_cases', async t => { const clusters = await m.create_cases('tests/datas/TEST_COVID19.csv'); t.is(clusters.number_cases, 3); t.is(clusters.last_clusters[0].case_code, 'VFDV6655'); t.is(clusters.last_clusters[0].age, 22); t.is(clusters.last_clusters[0].sex, 'M'); t.is(clusters.last_clusters[1].case_code, 'VF54564'); t.is(clusters.last_clusters[1].age, 23); t.is(clusters.last_clusters[1].sex, 'M'); t.is(clusters.last_clusters[2].case_code, 'SD6555'); t.is(clusters.last_clusters[2].age, 18); t.is(clusters.last_clusters[2].sex, 'F'); });