Removing tests which hadn't been updated since React (shame on me).
This commit is contained in:
parent
57010f89f4
commit
03c0476f46
|
@ -1,86 +0,0 @@
|
|||
import { initDb } from '.';
|
||||
import { existsGpx, putNewGpx } from './gpx';
|
||||
declare global {
|
||||
var db: any;
|
||||
var dbReady: boolean;
|
||||
}
|
||||
|
||||
const originalDb = globalThis.db;
|
||||
const originalDateNow = globalThis.Date.now;
|
||||
|
||||
describe('The gpx module', () => {
|
||||
beforeEach(() => {
|
||||
globalThis.db = { put: jest.fn() };
|
||||
globalThis.Date.now = () => 0;
|
||||
});
|
||||
afterEach(() => {
|
||||
globalThis.db = originalDb;
|
||||
globalThis.Date.now = originalDateNow;
|
||||
});
|
||||
test('db.put() a new Gpx when required', async () => {
|
||||
await putNewGpx({ gpx: 0 });
|
||||
expect(globalThis.db.put).toBeCalledWith({
|
||||
_id: 'gpx/0000000000000000',
|
||||
_rev: undefined,
|
||||
doc: {
|
||||
$: {
|
||||
creator: 'dyomedea version 0.000002',
|
||||
version: '1.1',
|
||||
xmlns: 'http://www.topografix.com/GPX/1/1',
|
||||
'xmlns:dyo': 'http://xmlns.dyomedea.com/',
|
||||
'xmlns:gpxtpx':
|
||||
'http://www.garmin.com/xmlschemas/TrackPointExtension/v1',
|
||||
'xmlns:gpxx': 'http://www.garmin.com/xmlschemas/GpxExtensions/v3',
|
||||
'xmlns:wptx1':
|
||||
'http://www.garmin.com/xmlschemas/WaypointExtension/v1',
|
||||
'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',
|
||||
'xsi:schemaLocation':
|
||||
'http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www8.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/WaypointExtension/v1 http://www8.garmin.com/xmlschemas/WaypointExtensionv1.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd',
|
||||
},
|
||||
extensions: undefined,
|
||||
metadata: {
|
||||
author: undefined,
|
||||
bounds: undefined,
|
||||
copyright: undefined,
|
||||
desc: undefined,
|
||||
extensions: undefined,
|
||||
keywords: undefined,
|
||||
link: undefined,
|
||||
name: undefined,
|
||||
time: '1970-01-01T00:00:00.000Z',
|
||||
},
|
||||
rte: undefined,
|
||||
trk: undefined,
|
||||
wpt: undefined,
|
||||
},
|
||||
type: 'gpx',
|
||||
});
|
||||
});
|
||||
test('db.put() generates an id if needed', async () => {
|
||||
const id = await putNewGpx();
|
||||
expect(id).toEqual({ gpx: 4320000000000000 });
|
||||
});
|
||||
});
|
||||
|
||||
describe('The gpx module with a real db', () => {
|
||||
beforeEach(async () => {
|
||||
await initDb({});
|
||||
globalThis.Date.now = () => 0;
|
||||
});
|
||||
afterEach(async () => {
|
||||
await db.destroy();
|
||||
db = undefined;
|
||||
globalThis.Date.now = originalDateNow;
|
||||
});
|
||||
|
||||
test("existsGpx returns false if the GPX doesn't exist", async () => {
|
||||
const exists = await existsGpx({ gpx: 1 });
|
||||
expect(exists).toBeFalsy();
|
||||
});
|
||||
test('existsGpx returns false if the GPX exists', async () => {
|
||||
const id = { gpx: 1 };
|
||||
await putNewGpx(id);
|
||||
const exists = await existsGpx(id);
|
||||
expect(exists).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,299 +0,0 @@
|
|||
import { initDb } from '.';
|
||||
import uri from '../lib/ids';
|
||||
import { getDocsByType, getFamily } from './lib';
|
||||
import { putNewRte } from './rte';
|
||||
import { putNewRtept } from './rtept';
|
||||
import { putNewTrk } from './trk';
|
||||
import { putNewTrkpt } from './trkpt';
|
||||
import { putNewTrkseg } from './trkseg';
|
||||
import { putNewWpt } from './wpt';
|
||||
|
||||
declare global {
|
||||
var db: any;
|
||||
}
|
||||
|
||||
const originalDateNow = globalThis.Date.now;
|
||||
|
||||
describe('getFamily', () => {
|
||||
beforeEach(async () => {
|
||||
await initDb({});
|
||||
globalThis.Date.now = () => 0;
|
||||
});
|
||||
afterEach(async () => {
|
||||
await db.destroy();
|
||||
db = undefined;
|
||||
globalThis.Date.now = originalDateNow;
|
||||
});
|
||||
test('returns two rows after a gpx and a track have been inserted.', async () => {
|
||||
await putNewTrk();
|
||||
const allDocs: any = await getFamily('gpx/');
|
||||
expect(allDocs).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"offset": 0,
|
||||
"rows": Array [
|
||||
Object {
|
||||
"id": "gpx/4320000000000000",
|
||||
"key": "gpx/4320000000000000",
|
||||
"value": Object {
|
||||
"rev": "1-49baa096ec0c89962f2cafd3ff50b80b",
|
||||
},
|
||||
},
|
||||
Object {
|
||||
"id": "gpx/4320000000000000/3trk/000000",
|
||||
"key": "gpx/4320000000000000/3trk/000000",
|
||||
"value": Object {
|
||||
"rev": "1-4c114f3ae0073151e4082ff1d220c2a4",
|
||||
},
|
||||
},
|
||||
],
|
||||
"total_rows": 4,
|
||||
}
|
||||
`);
|
||||
});
|
||||
test('also returns the docs if required.', async () => {
|
||||
await putNewTrk();
|
||||
const allDocs: any = await getFamily('gpx/', {
|
||||
include_docs: true,
|
||||
});
|
||||
expect(allDocs).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"offset": 0,
|
||||
"rows": Array [
|
||||
Object {
|
||||
"doc": Object {
|
||||
"_id": "gpx/4320000000000000",
|
||||
"_rev": "1-49baa096ec0c89962f2cafd3ff50b80b",
|
||||
"doc": Object {
|
||||
"$": Object {
|
||||
"creator": "dyomedea version 0.000002",
|
||||
"version": "1.1",
|
||||
"xmlns": "http://www.topografix.com/GPX/1/1",
|
||||
"xmlns:dyo": "http://xmlns.dyomedea.com/",
|
||||
"xmlns:gpxtpx": "http://www.garmin.com/xmlschemas/TrackPointExtension/v1",
|
||||
"xmlns:gpxx": "http://www.garmin.com/xmlschemas/GpxExtensions/v3",
|
||||
"xmlns:wptx1": "http://www.garmin.com/xmlschemas/WaypointExtension/v1",
|
||||
"xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
|
||||
"xsi:schemaLocation": "http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www8.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/WaypointExtension/v1 http://www8.garmin.com/xmlschemas/WaypointExtensionv1.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd",
|
||||
},
|
||||
"metadata": Object {
|
||||
"time": "1970-01-01T00:00:00.000Z",
|
||||
},
|
||||
},
|
||||
"type": "gpx",
|
||||
},
|
||||
"id": "gpx/4320000000000000",
|
||||
"key": "gpx/4320000000000000",
|
||||
"value": Object {
|
||||
"rev": "1-49baa096ec0c89962f2cafd3ff50b80b",
|
||||
},
|
||||
},
|
||||
Object {
|
||||
"doc": Object {
|
||||
"_id": "gpx/4320000000000000/3trk/000000",
|
||||
"_rev": "1-4c114f3ae0073151e4082ff1d220c2a4",
|
||||
"doc": Object {
|
||||
"number": 0,
|
||||
},
|
||||
"type": "trk",
|
||||
},
|
||||
"id": "gpx/4320000000000000/3trk/000000",
|
||||
"key": "gpx/4320000000000000/3trk/000000",
|
||||
"value": Object {
|
||||
"rev": "1-4c114f3ae0073151e4082ff1d220c2a4",
|
||||
},
|
||||
},
|
||||
],
|
||||
"total_rows": 4,
|
||||
}
|
||||
`);
|
||||
});
|
||||
test('returns three rows after a gpx and a track segment have been inserted.', async () => {
|
||||
await putNewTrkseg();
|
||||
const allDocs: any = await getFamily('gpx/');
|
||||
expect(allDocs).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"offset": 0,
|
||||
"rows": Array [
|
||||
Object {
|
||||
"id": "gpx/4320000000000000",
|
||||
"key": "gpx/4320000000000000",
|
||||
"value": Object {
|
||||
"rev": "1-49baa096ec0c89962f2cafd3ff50b80b",
|
||||
},
|
||||
},
|
||||
Object {
|
||||
"id": "gpx/4320000000000000/3trk/000000",
|
||||
"key": "gpx/4320000000000000/3trk/000000",
|
||||
"value": Object {
|
||||
"rev": "1-4c114f3ae0073151e4082ff1d220c2a4",
|
||||
},
|
||||
},
|
||||
Object {
|
||||
"id": "gpx/4320000000000000/3trk/000000/000000",
|
||||
"key": "gpx/4320000000000000/3trk/000000/000000",
|
||||
"value": Object {
|
||||
"rev": "1-68d7de0569de570229ea9f9e1a0b13cb",
|
||||
},
|
||||
},
|
||||
],
|
||||
"total_rows": 5,
|
||||
}
|
||||
`);
|
||||
});
|
||||
test('returns four rows after a gpx and a track point have been inserted.', async () => {
|
||||
await putNewTrkpt();
|
||||
const allDocs: any = await getFamily('gpx/');
|
||||
expect(allDocs).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"offset": 0,
|
||||
"rows": Array [
|
||||
Object {
|
||||
"id": "gpx/4320000000000000",
|
||||
"key": "gpx/4320000000000000",
|
||||
"value": Object {
|
||||
"rev": "1-49baa096ec0c89962f2cafd3ff50b80b",
|
||||
},
|
||||
},
|
||||
Object {
|
||||
"id": "gpx/4320000000000000/3trk/000000",
|
||||
"key": "gpx/4320000000000000/3trk/000000",
|
||||
"value": Object {
|
||||
"rev": "1-4c114f3ae0073151e4082ff1d220c2a4",
|
||||
},
|
||||
},
|
||||
Object {
|
||||
"id": "gpx/4320000000000000/3trk/000000/000000",
|
||||
"key": "gpx/4320000000000000/3trk/000000/000000",
|
||||
"value": Object {
|
||||
"rev": "1-68d7de0569de570229ea9f9e1a0b13cb",
|
||||
},
|
||||
},
|
||||
Object {
|
||||
"id": "gpx/4320000000000000/3trk/000000/000000/000000",
|
||||
"key": "gpx/4320000000000000/3trk/000000/000000/000000",
|
||||
"value": Object {
|
||||
"rev": "1-7d917d1f3505fe0e3092161694904b53",
|
||||
},
|
||||
},
|
||||
],
|
||||
"total_rows": 6,
|
||||
}
|
||||
`);
|
||||
});
|
||||
|
||||
test('returns two rows after a gpx and a waypoint have been inserted.', async () => {
|
||||
await putNewWpt();
|
||||
const allDocs: any = await getFamily('gpx/');
|
||||
expect(allDocs).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"offset": 0,
|
||||
"rows": Array [
|
||||
Object {
|
||||
"id": "gpx/4320000000000000",
|
||||
"key": "gpx/4320000000000000",
|
||||
"value": Object {
|
||||
"rev": "1-49baa096ec0c89962f2cafd3ff50b80b",
|
||||
},
|
||||
},
|
||||
Object {
|
||||
"id": "gpx/4320000000000000/1wpt/000000",
|
||||
"key": "gpx/4320000000000000/1wpt/000000",
|
||||
"value": Object {
|
||||
"rev": "1-c6793365fd0dd56236ab8734a41c7ae7",
|
||||
},
|
||||
},
|
||||
],
|
||||
"total_rows": 4,
|
||||
}
|
||||
`);
|
||||
});
|
||||
|
||||
test('returns two rows after a gpx and a route have been inserted.', async () => {
|
||||
await putNewRte();
|
||||
const allDocs: any = await getFamily('gpx/');
|
||||
expect(allDocs).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"offset": 0,
|
||||
"rows": Array [
|
||||
Object {
|
||||
"id": "gpx/4320000000000000",
|
||||
"key": "gpx/4320000000000000",
|
||||
"value": Object {
|
||||
"rev": "1-49baa096ec0c89962f2cafd3ff50b80b",
|
||||
},
|
||||
},
|
||||
Object {
|
||||
"id": "gpx/4320000000000000/2rte/000000",
|
||||
"key": "gpx/4320000000000000/2rte/000000",
|
||||
"value": Object {
|
||||
"rev": "1-2ca14f512a9c83f5a239389e580befce",
|
||||
},
|
||||
},
|
||||
],
|
||||
"total_rows": 4,
|
||||
}
|
||||
`);
|
||||
});
|
||||
|
||||
test('returns three rows after a gpx and a route point have been inserted.', async () => {
|
||||
await putNewRtept();
|
||||
const allDocs: any = await getFamily('gpx/');
|
||||
expect(allDocs).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"offset": 0,
|
||||
"rows": Array [
|
||||
Object {
|
||||
"id": "gpx/4320000000000000",
|
||||
"key": "gpx/4320000000000000",
|
||||
"value": Object {
|
||||
"rev": "1-49baa096ec0c89962f2cafd3ff50b80b",
|
||||
},
|
||||
},
|
||||
Object {
|
||||
"id": "gpx/4320000000000000/2rte/000000",
|
||||
"key": "gpx/4320000000000000/2rte/000000",
|
||||
"value": Object {
|
||||
"rev": "1-2ca14f512a9c83f5a239389e580befce",
|
||||
},
|
||||
},
|
||||
Object {
|
||||
"id": "gpx/4320000000000000/2rte/000000/000000",
|
||||
"key": "gpx/4320000000000000/2rte/000000/000000",
|
||||
"value": Object {
|
||||
"rev": "1-0f4064d20f6bfac3888a7758851fbac5",
|
||||
},
|
||||
},
|
||||
],
|
||||
"total_rows": 5,
|
||||
}
|
||||
`);
|
||||
});
|
||||
});
|
||||
|
||||
describe('getDocsByType', () => {
|
||||
beforeEach(async () => {
|
||||
await initDb({});
|
||||
globalThis.Date.now = () => 0;
|
||||
});
|
||||
afterEach(async () => {
|
||||
await db.destroy();
|
||||
db = undefined;
|
||||
globalThis.Date.now = originalDateNow;
|
||||
});
|
||||
test('gets the rte amongst other docs', async () => {
|
||||
await putNewRtept();
|
||||
const rtes = await getDocsByType('rte');
|
||||
expect(rtes).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Object {
|
||||
"_id": "gpx/4320000000000000/2rte/000000",
|
||||
"_rev": "1-2ca14f512a9c83f5a239389e580befce",
|
||||
"doc": Object {
|
||||
"number": 0,
|
||||
},
|
||||
"type": "rte",
|
||||
},
|
||||
]
|
||||
`);
|
||||
});
|
||||
});
|
|
@ -1,47 +0,0 @@
|
|||
import { putNewRte } from './rte';
|
||||
|
||||
declare global {
|
||||
var db: any;
|
||||
var dbReady: boolean;
|
||||
}
|
||||
|
||||
const originalDb = globalThis.db;
|
||||
const originalDateNow = globalThis.Date.now;
|
||||
|
||||
describe('The rte module', () => {
|
||||
beforeEach(() => {
|
||||
globalThis.db = { put: jest.fn() };
|
||||
globalThis.Date.now = () => 0;
|
||||
});
|
||||
afterEach(() => {
|
||||
globalThis.db = originalDb;
|
||||
globalThis.Date.now = originalDateNow;
|
||||
});
|
||||
test('db.put() a new rte when required', async () => {
|
||||
putNewRte({ gpx: 4320000000000000, rte: 25 });
|
||||
await expect(globalThis.db.put).toBeCalledWith({
|
||||
_id: 'gpx/4320000000000000/2rte/000025',
|
||||
_rev: undefined,
|
||||
doc: {
|
||||
cmt: undefined,
|
||||
desc: undefined,
|
||||
extensions: undefined,
|
||||
link: undefined,
|
||||
name: undefined,
|
||||
number: 0,
|
||||
rtept: undefined,
|
||||
src: undefined,
|
||||
type: undefined,
|
||||
},
|
||||
type: 'rte',
|
||||
});
|
||||
});
|
||||
test('db.put() generates an id for the trk if needed', async () => {
|
||||
const id = await putNewRte({ gpx: 0 });
|
||||
expect(id).toEqual({ gpx: 0, rte: 0 });
|
||||
});
|
||||
test('db.put() generates ids for both gpx and trk if needed', async () => {
|
||||
const id = await putNewRte();
|
||||
expect(id).toEqual({ gpx: 4320000000000000, rte: 0 });
|
||||
});
|
||||
});
|
|
@ -1,58 +0,0 @@
|
|||
import { putNewRtept } from './rtept';
|
||||
|
||||
declare global {
|
||||
var db: any;
|
||||
var dbReady: boolean;
|
||||
}
|
||||
|
||||
const originalDb = globalThis.db;
|
||||
const originalDateNow = globalThis.Date.now;
|
||||
|
||||
describe('The rtept module', () => {
|
||||
beforeEach(() => {
|
||||
globalThis.db = { put: jest.fn() };
|
||||
globalThis.Date.now = () => 0;
|
||||
});
|
||||
afterEach(() => {
|
||||
globalThis.db = originalDb;
|
||||
globalThis.Date.now = originalDateNow;
|
||||
});
|
||||
test('db.put() a new rtept when required', async () => {
|
||||
putNewRtept({ gpx: 0, rte: 0, rtept: 0 });
|
||||
await expect(globalThis.db.put).toBeCalledWith({
|
||||
_id: 'gpx/0000000000000000/2rte/000000/000000',
|
||||
_rev: undefined,
|
||||
doc: {
|
||||
$: { lat: 0, lon: 0 },
|
||||
ageofdgpsdata: undefined,
|
||||
cmt: undefined,
|
||||
desc: undefined,
|
||||
dgpsid: undefined,
|
||||
ele: undefined,
|
||||
extensions: undefined,
|
||||
fix: undefined,
|
||||
geoidheight: undefined,
|
||||
hdop: undefined,
|
||||
link: undefined,
|
||||
magvar: undefined,
|
||||
name: undefined,
|
||||
pdop: undefined,
|
||||
sat: undefined,
|
||||
src: undefined,
|
||||
sym: undefined,
|
||||
time: undefined,
|
||||
type: undefined,
|
||||
vdop: undefined,
|
||||
},
|
||||
type: 'rtept',
|
||||
});
|
||||
});
|
||||
test('db.put() generates an id for the rtept if needed', async () => {
|
||||
const id = await putNewRtept({ gpx: 0 });
|
||||
expect(id).toEqual({ gpx: 0, rte: 0, rtept: 0 });
|
||||
});
|
||||
test('db.put() generates ids for both gpx and rte if needed', async () => {
|
||||
const id = await putNewRtept();
|
||||
expect(id).toEqual({ gpx: 4320000000000000, rte: 0, rtept: 0 });
|
||||
});
|
||||
});
|
|
@ -1,47 +0,0 @@
|
|||
import { putNewTrk } from './trk';
|
||||
|
||||
declare global {
|
||||
var db: any;
|
||||
var dbReady: boolean;
|
||||
}
|
||||
|
||||
const originalDb = globalThis.db;
|
||||
const originalDateNow = globalThis.Date.now;
|
||||
|
||||
describe('The trk module', () => {
|
||||
beforeEach(() => {
|
||||
globalThis.db = { put: jest.fn() };
|
||||
globalThis.Date.now = () => 0;
|
||||
});
|
||||
afterEach(() => {
|
||||
globalThis.db = originalDb;
|
||||
globalThis.Date.now = originalDateNow;
|
||||
});
|
||||
test('db.put() a new trk when required', async () => {
|
||||
putNewTrk({ gpx: 1, trk: 2 });
|
||||
await expect(globalThis.db.put).toBeCalledWith({
|
||||
_id: 'gpx/0000000000000001/3trk/000002',
|
||||
_rev: undefined,
|
||||
doc: {
|
||||
cmt: undefined,
|
||||
desc: undefined,
|
||||
extensions: undefined,
|
||||
link: undefined,
|
||||
name: undefined,
|
||||
number: 0,
|
||||
src: undefined,
|
||||
trkseg: undefined,
|
||||
type: undefined,
|
||||
},
|
||||
type: 'trk',
|
||||
});
|
||||
});
|
||||
test('db.put() generates an id for the trk if needed', async () => {
|
||||
const id = await putNewTrk({ gpx: 2 });
|
||||
expect(id).toEqual({ gpx: 2, trk: 0});
|
||||
});
|
||||
test('db.put() generates ids for both gpx and trk if needed', async () => {
|
||||
const id = await putNewTrk();
|
||||
expect(id).toEqual({ gpx: 4320000000000000, trk: 0});
|
||||
});
|
||||
});
|
|
@ -1,79 +0,0 @@
|
|||
import { putNewTrkpt } from './trkpt';
|
||||
|
||||
declare global {
|
||||
var db: any;
|
||||
var dbReady: boolean;
|
||||
}
|
||||
|
||||
const originalDb = globalThis.db;
|
||||
const originalDateNow = globalThis.Date.now;
|
||||
|
||||
describe('The trkpt module', () => {
|
||||
beforeEach(() => {
|
||||
globalThis.db = { put: jest.fn() };
|
||||
globalThis.Date.now = () => 0;
|
||||
});
|
||||
afterEach(() => {
|
||||
globalThis.db = originalDb;
|
||||
globalThis.Date.now = originalDateNow;
|
||||
});
|
||||
test('db.put() a new trkpt when required', async () => {
|
||||
putNewTrkpt({
|
||||
gpx: 1,
|
||||
trk: 2,
|
||||
trkseg: 3,
|
||||
trkpt: 4,
|
||||
});
|
||||
await expect(globalThis.db.put).toBeCalledWith({
|
||||
_id: 'gpx/0000000000000001/3trk/000002/000003/000004',
|
||||
_rev: undefined,
|
||||
doc: {
|
||||
$: { lat: 0, lon: 0 },
|
||||
ageofdgpsdata: undefined,
|
||||
cmt: undefined,
|
||||
desc: undefined,
|
||||
dgpsid: undefined,
|
||||
ele: undefined,
|
||||
extensions: {
|
||||
'dyo:accuracy': undefined,
|
||||
'dyo:batterylevel': undefined,
|
||||
'dyo:course': undefined,
|
||||
'dyo:speed': undefined,
|
||||
'dyo:useragent': undefined,
|
||||
},
|
||||
fix: undefined,
|
||||
geoidheight: undefined,
|
||||
hdop: undefined,
|
||||
link: undefined,
|
||||
magvar: undefined,
|
||||
name: undefined,
|
||||
pdop: undefined,
|
||||
sat: undefined,
|
||||
src: undefined,
|
||||
sym: undefined,
|
||||
time: undefined,
|
||||
type: undefined,
|
||||
vdop: undefined,
|
||||
},
|
||||
type: 'trkpt',
|
||||
});
|
||||
});
|
||||
test('db.put() generates an id for the trk if needed', async () => {
|
||||
const id = await putNewTrkpt({ gpx: 5 });
|
||||
expect(id).toEqual({
|
||||
gpx: 5,
|
||||
trk: 0,
|
||||
trkseg: 0,
|
||||
trkpt: 0,
|
||||
});
|
||||
});
|
||||
test('db.put() generates ids for both gpx and trk if needed', async () => {
|
||||
const id = await putNewTrkpt();
|
||||
expect(id).toEqual({
|
||||
gpx: 4320000000000000,
|
||||
trk: 0,
|
||||
trkseg: 0,
|
||||
trkpt: 0,
|
||||
});
|
||||
});
|
||||
});
|
|
@ -1,40 +0,0 @@
|
|||
import { putNewTrkseg } from './trkseg';
|
||||
|
||||
declare global {
|
||||
var db: any;
|
||||
var dbReady: boolean;
|
||||
}
|
||||
|
||||
const originalDb = globalThis.db;
|
||||
const originalDateNow = globalThis.Date.now;
|
||||
|
||||
describe('The trkseg module', () => {
|
||||
beforeEach(() => {
|
||||
globalThis.db = { put: jest.fn() };
|
||||
globalThis.Date.now = () => 0;
|
||||
});
|
||||
afterEach(() => {
|
||||
globalThis.db = originalDb;
|
||||
globalThis.Date.now = originalDateNow;
|
||||
});
|
||||
test('db.put() a new trk when required', async () => {
|
||||
putNewTrkseg({ gpx: 1234567890123456, trk: 123456, trkseg: 5 });
|
||||
await expect(globalThis.db.put).toBeCalledWith({
|
||||
_id: 'gpx/1234567890123456/3trk/123456/000005',
|
||||
_rev: undefined,
|
||||
doc: {
|
||||
trkpt: undefined,
|
||||
extensions: undefined,
|
||||
},
|
||||
type: 'trkseg',
|
||||
});
|
||||
});
|
||||
test('db.put() generates an id for the trk if needed', async () => {
|
||||
const id = await putNewTrkseg({ gpx: 1 });
|
||||
expect(id).toEqual({ gpx: 1, trk: 0, trkseg: 0 });
|
||||
});
|
||||
test('db.put() generates ids for both gpx and trk if needed', async () => {
|
||||
const id = await putNewTrkseg();
|
||||
expect(id).toEqual({ gpx: 4320000000000000, trk: 0, trkseg: 0 });
|
||||
});
|
||||
});
|
|
@ -1,58 +0,0 @@
|
|||
import { putNewWpt } from './wpt';
|
||||
|
||||
declare global {
|
||||
var db: any;
|
||||
var dbReady: boolean;
|
||||
}
|
||||
|
||||
const originalDb = globalThis.db;
|
||||
const originalDateNow = globalThis.Date.now;
|
||||
|
||||
describe('The wpt module', () => {
|
||||
beforeEach(() => {
|
||||
globalThis.db = { put: jest.fn() };
|
||||
globalThis.Date.now = () => 0;
|
||||
});
|
||||
afterEach(() => {
|
||||
globalThis.db = originalDb;
|
||||
globalThis.Date.now = originalDateNow;
|
||||
});
|
||||
test('db.put() a new wpt when required', async () => {
|
||||
putNewWpt({ gpx: 1, wpt: 2 });
|
||||
await expect(globalThis.db.put).toBeCalledWith({
|
||||
_id: 'gpx/0000000000000001/1wpt/000002',
|
||||
_rev: undefined,
|
||||
doc: {
|
||||
$: { lat: 0, lon: 0 },
|
||||
ageofdgpsdata: undefined,
|
||||
cmt: undefined,
|
||||
desc: undefined,
|
||||
dgpsid: undefined,
|
||||
ele: undefined,
|
||||
extensions: undefined,
|
||||
fix: undefined,
|
||||
geoidheight: undefined,
|
||||
hdop: undefined,
|
||||
link: undefined,
|
||||
magvar: undefined,
|
||||
name: undefined,
|
||||
pdop: undefined,
|
||||
sat: undefined,
|
||||
src: undefined,
|
||||
sym: undefined,
|
||||
time: undefined,
|
||||
type: undefined,
|
||||
vdop: undefined,
|
||||
},
|
||||
type: 'wpt',
|
||||
});
|
||||
});
|
||||
test('db.put() generates an id for the wpt if needed', async () => {
|
||||
const id = await putNewWpt({ gpx: 1 });
|
||||
expect(id).toEqual({ gpx: 1, wpt: 0 });
|
||||
});
|
||||
test('db.put() generates ids for both gpx and trk if needed', async () => {
|
||||
const id = await putNewWpt();
|
||||
expect(id).toEqual({ gpx: 4320000000000000, wpt: 0 });
|
||||
});
|
||||
});
|
|
@ -1,33 +0,0 @@
|
|||
import { assert } from 'console';
|
||||
import { findStartTime } from './gpx';
|
||||
|
||||
describe('findStartTime', () => {
|
||||
test('to be undefined for a string', () => {
|
||||
const start = findStartTime('');
|
||||
expect(start).toBeUndefined();
|
||||
});
|
||||
test('to be undefined for an object without time key', () => {
|
||||
const start = findStartTime({ foo: 'foo', bar: 'bar' });
|
||||
expect(start).toBeUndefined();
|
||||
});
|
||||
test('to be the time value for an object with a time key', () => {
|
||||
const start = findStartTime({ foo: 'foo', time: 'bar' });
|
||||
expect(start).toEqual('bar');
|
||||
});
|
||||
test('to be the lowest time value for an object with several time keys', () => {
|
||||
const start = findStartTime({
|
||||
foo: { time: 'foo' },
|
||||
time: 'bar',
|
||||
bar: { time: 'a' },
|
||||
});
|
||||
expect(start).toEqual('a');
|
||||
});
|
||||
test('to be the lowest time value for an array with several objects with time keys', () => {
|
||||
const start = findStartTime({
|
||||
foos: [{ time: 'foo' }, { time: '0' }],
|
||||
time: 'bar',
|
||||
bar: { time: 'a' },
|
||||
});
|
||||
expect(start).toEqual('0');
|
||||
});
|
||||
});
|
|
@ -1,120 +0,0 @@
|
|||
import { route } from './docuri';
|
||||
import uri from './ids';
|
||||
|
||||
describe('Checking some DocURI features', () => {
|
||||
test(', basic route', () => {
|
||||
const gpx = route('gpx/:id');
|
||||
expect(gpx({ id: 10 })).toBe('gpx/10');
|
||||
});
|
||||
test(', basic route (vice-versa', () => {
|
||||
const gpx = route('gpx/:id');
|
||||
expect(gpx('gpx/10')).toMatchObject({ id: '10' });
|
||||
});
|
||||
});
|
||||
|
||||
describe('Checking a multilevel route', () => {
|
||||
test(', using the two levels', () => {
|
||||
const gpx = route('gpx/:gpx/3trk/:trk');
|
||||
expect(gpx({ gpx: 10, trk: 0 })).toBe('gpx/10/3trk/0');
|
||||
});
|
||||
test(', using the two levels (vive-versa)', () => {
|
||||
const gpx = route('gpx/:gpx/3trk/:trk');
|
||||
expect(gpx('gpx/10/3trk/0')).toMatchObject({ gpx: '10', trk: '0' });
|
||||
});
|
||||
});
|
||||
|
||||
describe('Checking a multilevel route with optional part', () => {
|
||||
test(', using the two levels', () => {
|
||||
const gpx = route('gpx/:gpx(/3trk/:trk)');
|
||||
expect(gpx({ gpx: 10, trk: 0 })).toBe('gpx/10/3trk/0');
|
||||
});
|
||||
test(', using the two levels (vive-versa)', () => {
|
||||
const gpx = route('gpx/:gpx(/3trk/:trk)');
|
||||
expect(gpx('gpx/10/3trk/0')).toMatchObject({ gpx: '10', trk: '0' });
|
||||
});
|
||||
test(', using only one level', () => {
|
||||
const gpx = route('gpx/:gpx(/3trk/:trk)');
|
||||
expect(gpx({ gpx: 10 })).toBe('gpx/10/3trk/'); //Unfortunately !
|
||||
});
|
||||
test(', using only one level (vive-versa)', () => {
|
||||
const gpx = route('gpx/:gpx(/3trk/:trk)');
|
||||
expect(gpx('gpx/10')).toMatchObject({ gpx: '10' });
|
||||
});
|
||||
});
|
||||
|
||||
describe('Checking gpx ids', () => {
|
||||
const id = {
|
||||
gpx: 1234567890123456,
|
||||
};
|
||||
const key = 'gpx/1234567890123456';
|
||||
test(', vice', () => {
|
||||
const gpx = uri('gpx', id);
|
||||
expect(gpx).toBe(key);
|
||||
});
|
||||
test(', and versa', () => {
|
||||
const gpx = uri('gpx', key);
|
||||
expect(gpx).toMatchObject(id);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Checking trk ids', () => {
|
||||
const id = {
|
||||
gpx: 1234567890123456,
|
||||
trk: 123456,
|
||||
};
|
||||
const key = 'gpx/1234567890123456/3trk/123456';
|
||||
test(', vice', () => {
|
||||
const rte = uri('trk', id);
|
||||
expect(rte).toBe(key);
|
||||
});
|
||||
test(', and versa', () => {
|
||||
const rte = uri('trk', key);
|
||||
expect(rte).toMatchObject(id);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Checking trkseg ids', () => {
|
||||
const id = {
|
||||
gpx: 111,
|
||||
trk: 0,
|
||||
trkseg: 3,
|
||||
};
|
||||
const key = 'gpx/0000000000000111/3trk/000000/000003';
|
||||
test(', vice', () => {
|
||||
const rte = uri('trkseg', id);
|
||||
expect(rte).toBe(key);
|
||||
});
|
||||
test(', and versa', () => {
|
||||
const rte = uri('trkseg', key);
|
||||
expect(rte).toMatchObject(id);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Checking trkpt ids', () => {
|
||||
const id = {
|
||||
gpx: 25,
|
||||
trk: 8,
|
||||
trkseg: 0,
|
||||
trkpt: 155,
|
||||
};
|
||||
const key = 'gpx/0000000000000025/3trk/000008/000000/000155';
|
||||
test(', vice', () => {
|
||||
const rte = uri('trkpt', id);
|
||||
expect(rte).toBe(key);
|
||||
});
|
||||
test(', and versa', () => {
|
||||
const rte = uri('trkpt', key);
|
||||
expect(rte).toMatchObject(id);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Checking settings id', () => {
|
||||
test(', vice', () => {
|
||||
const rte = uri('settings', {});
|
||||
expect(rte).toBe('settings');
|
||||
});
|
||||
test(', and versa', () => {
|
||||
const rte = uri('settings', 'settings');
|
||||
expect(rte).toMatchObject({});
|
||||
});
|
||||
});
|
|
@ -1,37 +0,0 @@
|
|||
import dispatch, { init, worker } from './dispatcher-main';
|
||||
|
||||
jest.mock('./get-worker', () => ({
|
||||
getWorker: () => ({
|
||||
port: {
|
||||
postMessage: jest.fn(),
|
||||
},
|
||||
}),
|
||||
}));
|
||||
|
||||
describe('The dispatcher-main', () => {
|
||||
beforeEach(() => {
|
||||
init();
|
||||
});
|
||||
test('should create a new shared web worker', () => {
|
||||
expect(worker).toBeDefined();
|
||||
});
|
||||
test('should create a onmessage function', () => {
|
||||
expect(worker.port.onmessage).toBeDefined();
|
||||
});
|
||||
test('should return a promise if no callback is provided', () => {
|
||||
expect(dispatch('ping')).toBeInstanceOf(Promise);
|
||||
});
|
||||
test('should forward the message', () => {
|
||||
dispatch('ping');
|
||||
expect(worker.port.postMessage).toBeCalledWith({ id: 0, payload: 'ping' });
|
||||
});
|
||||
test('should return the response', () => {
|
||||
var response;
|
||||
const callback = (error, success) => {
|
||||
response = success;
|
||||
};
|
||||
dispatch('ping', callback);
|
||||
worker.port.onmessage({ data: { id: 0, payload: 'pong' } });
|
||||
expect(response).toEqual('pong');
|
||||
});
|
||||
});
|
|
@ -1,33 +0,0 @@
|
|||
import worker from './dispatcher-worker';
|
||||
|
||||
jest.mock('../db', () => ({
|
||||
initDb: () => 'called initDb',
|
||||
}));
|
||||
|
||||
describe('The dispatcher-worker ', () => {
|
||||
let port;
|
||||
beforeEach(() => {
|
||||
port = {
|
||||
postMessage: jest.fn(),
|
||||
};
|
||||
worker.onconnect({ ports: [port] });
|
||||
});
|
||||
test('creates a onmessage function', () => {
|
||||
expect(port.onmessage).toBeDefined();
|
||||
expect(port.postMessage).not.toBeCalled();
|
||||
});
|
||||
test('receives a ping and sends back an unknownAction', async () => {
|
||||
await port.onmessage({ data: { id: 5, payload: { action: 'ping' } } });
|
||||
expect(port.postMessage).toBeCalledWith({
|
||||
id: 5,
|
||||
payload: 'unknownAction',
|
||||
});
|
||||
});
|
||||
test('calls initDb when required', async () => {
|
||||
await port.onmessage({ data: { id: 5, payload: { action: 'initDb' } } });
|
||||
expect(port.postMessage).toBeCalledWith({
|
||||
id: 5,
|
||||
payload: 'called initDb',
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue