From 680ad978ea605ea208fc9b9bf1034044db9d8ede Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20H=C3=BCttemann?= Date: Thu, 22 Jun 2023 14:42:27 +0200 Subject: [PATCH] Add tests for storage helper --- src/helpers/storage.test.ts | 62 +++++++++++++++++++++++++++++++++++++ src/helpers/storage.ts | 2 +- 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 src/helpers/storage.test.ts diff --git a/src/helpers/storage.test.ts b/src/helpers/storage.test.ts new file mode 100644 index 0000000..81bfb8d --- /dev/null +++ b/src/helpers/storage.test.ts @@ -0,0 +1,62 @@ +process.env.DATABASE = ':memory:' +import { beforeAll, expect, test } from '@jest/globals' +import { + createMembership, + getAccessToken, + getMapping, + getMemberships, + initStorage, + save, +} from './storage' +import { IdMapping } from '../entity/IdMapping' +import { Membership } from '../entity/Membership' + +const mapping = new IdMapping() +mapping.rcId = 'rcId' +mapping.matrixId = 'matrixId' +mapping.type = 0 +mapping.accessToken = 'accessToken' + +const membership = new Membership() +membership.rcRoomId = 'rcRoomId' +membership.rcUserId = 'rcUserId' + +beforeAll(async () => { + await initStorage() +}) + +test('save mapping', async () => { + await expect(save(mapping)).resolves.toBe(undefined) +}) + +test('get mapping', async () => { + await expect(getMapping(mapping.rcId, mapping.type)).resolves.toStrictEqual( + mapping + ) + await expect(getMapping('inexistent', 0)).resolves.toBe(null) +}) + +test('get access token', async () => { + await expect(getAccessToken(mapping.rcId)).resolves.toBe(mapping.accessToken) + await expect(getAccessToken('inexistent')).resolves.toBe(undefined) +}) + +test('create membership', async () => { + await expect( + createMembership(membership.rcRoomId, membership.rcUserId) + ).resolves.toBe(undefined) +}) + +test('get membership', async () => { + await expect(getMemberships(membership.rcRoomId)).resolves.toStrictEqual([ + membership.rcUserId, + ]) + + await createMembership(membership.rcRoomId, 'secondMember') + await expect(getMemberships(membership.rcRoomId)).resolves.toStrictEqual([ + membership.rcUserId, + 'secondMember', + ]) + + await expect(getMemberships('inexistent')).resolves.toStrictEqual([]) +}) diff --git a/src/helpers/storage.ts b/src/helpers/storage.ts index 961de7a..fcd9ff8 100644 --- a/src/helpers/storage.ts +++ b/src/helpers/storage.ts @@ -4,7 +4,7 @@ import { Membership } from '../entity/Membership' const AppDataSource = new DataSource({ type: 'sqlite', - database: 'db.sqlite', + database: process.env.DATABASE || 'db.sqlite', entities: [IdMapping, Membership], synchronize: true, logging: false,