41 lines
1.2 KiB
TypeScript
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');
|
|
});
|
|
});
|