@lxdhub/api
Version:
Display, search and copy LXD-images using a web interface.
69 lines (57 loc) • 2.19 kB
text/typescript
import { Test } from '@nestjs/testing';
import { SearchDictionary, SearchService } from '../search';
/**
* Test cases for the search service
*/
describe('SearchService', () => {
let searchService: SearchService;
beforeEach(async done => {
// Mock Search Module
const module = await Test.createTestingModule({
providers: [
SearchService
]
}).compile();
// Get the searchservice in the Testing Module Context
searchService = module.get<SearchService>(SearchService);
done();
});
describe('getLiteral', () => {
let searchDitionary: SearchDictionary[];
beforeEach(() => {
searchDitionary = [
{
aliases: [
'os'
],
searchLiteralKey: 'distribution'
},
{
aliases: [
'arch'
],
searchLiteralKey: 'architecture'
}
];
});
it('should transform correctly "os=ubuntu arch=64"', () => {
const literal = searchService.getLiteral('os=ubuntu arch=64', searchDitionary);
expect(literal.distribution).toBe('ubuntu');
expect(literal.architecture).toBe('64');
});
it('should transform correctly "abc" into default key', () => {
const literal = searchService.getLiteral('anc', searchDitionary, 'default');
expect(literal.default).toBe('anc');
});
it('should transform correctly "abc" into empty object', () => {
const literal = searchService.getLiteral('anc', searchDitionary);
expect(literal).toEqual({});
});
it('should throw an exception when using unknwon keys "abc=1"', () => {
expect(() => searchService.getLiteral('abc=1', searchDitionary)).toThrowError(TypeError);
});
it('should throw an error "abc=="', () => {
expect(() => searchService.getLiteral('abc==', searchDitionary)).toThrowError(TypeError);
});
});
});