Add tests for storage helper

This commit is contained in:
Henrik Hüttemann 2023-06-22 14:42:27 +02:00
parent b1e15242bd
commit 680ad978ea
No known key found for this signature in database
GPG Key ID: 9F7BD10E0A8A111E
2 changed files with 63 additions and 1 deletions

View File

@ -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([])
})

View File

@ -4,7 +4,7 @@ import { Membership } from '../entity/Membership'
const AppDataSource = new DataSource({ const AppDataSource = new DataSource({
type: 'sqlite', type: 'sqlite',
database: 'db.sqlite', database: process.env.DATABASE || 'db.sqlite',
entities: [IdMapping, Membership], entities: [IdMapping, Membership],
synchronize: true, synchronize: true,
logging: false, logging: false,