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

45 lines
1.2 KiB
TypeScript
Raw Normal View History

/// <reference types="../global.d.ts" />
import { equal } from 'node:assert';
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-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');
equal(await session.get('test'), 'value');
2023-09-01 22:41:29 +03:00
t.pass();
});
2023-09-01 22:41:29 +03:00
test('should be expired by ttl', async t => {
await session.set('test', 'value', 100);
equal(await session.get('test'), 'value');
await new Promise(resolve => setTimeout(resolve, 500));
equal(await session.get('test'), undefined);
2023-09-01 22:41:29 +03:00
t.pass();
});