dcb-user-service/test/token.service.spec.ts

41 lines
1.2 KiB
TypeScript

import { Test, TestingModule } from '@nestjs/testing';
import { TokenService } from '../src/auth/services/token.service';
import { HttpService } from '@nestjs/axios';
import { ConfigService } from '@nestjs/config';
import { of } from 'rxjs';
describe('TokenService', () => {
let service: TokenService;
const mockHttp = { post: jest.fn() };
const mockConfig = {
get: (key: string) => {
const map = {
'keycloak.serverUrl': 'https://keycloak-dcb.app.cameleonapp.com',
'keycloak.realm': 'master',
'keycloak.clientId': 'dcb-cc',
'keycloak.clientSecret': 'secret',
'keycloak.tokenBufferSeconds': 30,
};
return map[key];
},
};
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [
TokenService,
{ provide: HttpService, useValue: mockHttp },
{ provide: ConfigService, useValue: mockConfig },
],
}).compile();
service = module.get<TokenService>(TokenService);
});
it('should acquire a token', async () => {
mockHttp.post.mockReturnValue(of({ data: { access_token: 'abc123', expires_in: 60 } }));
const token = await service.acquireToken();
expect(token).toBe('abc123');
});
});