AFFiNE/apps/server/src/tests/session.spec.ts

43 lines
1.1 KiB
TypeScript
Raw Normal View History

/// <reference types="../global.d.ts" />
import { Test, TestingModule } from '@nestjs/testing';
import { PrismaClient } from '@prisma/client';
2023-09-01 22:41:29 +03:00
import test from 'ava';
import { ConfigModule } from '../config';
import { SessionModule, SessionService } from '../session';
let session: SessionService;
let module: TestingModule;
// cleanup database before each test
2023-09-01 22:41:29 +03:00
test.beforeEach(async () => {
const client = new PrismaClient();
await client.$connect();
await client.user.deleteMany({});
2023-09-07 23:55:04 +03:00
await client.$disconnect();
});
2023-09-01 22:41:29 +03:00
test.beforeEach(async () => {
module = await Test.createTestingModule({
imports: [ConfigModule.forRoot(), SessionModule],
}).compile();
session = module.get(SessionService);
});
2023-09-01 22:41:29 +03:00
test.afterEach(async () => {
await module.close();
});
2023-09-01 22:41:29 +03:00
test('should be able to set session', async t => {
await session.set('test', 'value');
t.is(await session.get('test'), 'value');
});
2023-09-01 22:41:29 +03:00
test('should be expired by ttl', async t => {
await session.set('test', 'value', 100);
t.is(await session.get('test'), 'value');
await new Promise(resolve => setTimeout(resolve, 500));
t.is(await session.get('test'), undefined);
});