import { initDb } from '.'; import uri from '../lib/ids'; import { getFamily } from './lib'; import { putNewTrk } from './trk'; 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(uri('gpx', { gpx: '0' })); expect(allDocs).toMatchInlineSnapshot(` Object { "offset": 0, "rows": Array [ Object { "id": "gpx/0", "key": "gpx/0", "value": Object { "rev": "1-98d42c99fcf471a500b0506a60e77559", }, }, Object { "id": "gpx/0/2trk/00000", "key": "gpx/0/2trk/00000", "value": Object { "rev": "1-1e197ef8965a436730f80cabaaaa6f70", }, }, ], "total_rows": 5, } `); }); test('also returns the docs if required.', async () => { await putNewTrk(); const allDocs: any = await getFamily(uri('gpx', { gpx: '0' }), { include_docs: true, }); expect(allDocs).toMatchInlineSnapshot(` Object { "offset": 0, "rows": Array [ Object { "doc": Object { "_id": "gpx/0", "_rev": "1-98d42c99fcf471a500b0506a60e77559", "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/0", "key": "gpx/0", "value": Object { "rev": "1-98d42c99fcf471a500b0506a60e77559", }, }, Object { "doc": Object { "_id": "gpx/0/2trk/00000", "_rev": "1-1e197ef8965a436730f80cabaaaa6f70", "doc": Object { "number": 0, }, "type": "trk", }, "id": "gpx/0/2trk/00000", "key": "gpx/0/2trk/00000", "value": Object { "rev": "1-1e197ef8965a436730f80cabaaaa6f70", }, }, ], "total_rows": 5, } `); }); });