70 lines
2.2 KiB
TypeScript
70 lines
2.2 KiB
TypeScript
|
|
/**
|
|
* @license
|
|
* Copyright Google LLC All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
* found in the LICENSE file at https://angular.io/license
|
|
*/
|
|
|
|
import * as console from '../../utils/console';
|
|
import {buildVirtualGitClient, mockNgDevConfig, VirtualGitClient} from '../../utils/testing';
|
|
|
|
import {services, ServicesModule} from './services';
|
|
|
|
describe('ServicesModule', () => {
|
|
let getStatusFromStandardApiSpy: jasmine.Spy;
|
|
let infoSpy: jasmine.Spy;
|
|
let infoGroupSpy: jasmine.Spy;
|
|
let virtualGitClient: VirtualGitClient;
|
|
|
|
services.splice(0, Infinity, {url: 'fakeStatus.com/api.json', name: 'Service Name'});
|
|
|
|
beforeEach(() => {
|
|
getStatusFromStandardApiSpy = spyOn(ServicesModule.prototype, 'getStatusFromStandardApi');
|
|
virtualGitClient = buildVirtualGitClient();
|
|
infoGroupSpy = spyOn(console.info, 'group');
|
|
infoSpy = spyOn(console, 'info');
|
|
});
|
|
|
|
describe('gathering status', () => {
|
|
it('for each of the services', async () => {
|
|
new ServicesModule(virtualGitClient, {caretaker: {}, ...mockNgDevConfig});
|
|
|
|
expect(getStatusFromStandardApiSpy)
|
|
.toHaveBeenCalledWith({url: 'fakeStatus.com/api.json', name: 'Service Name'});
|
|
});
|
|
});
|
|
|
|
describe('printing the data retrieved', () => {
|
|
it('for each service ', async () => {
|
|
const fakeData = Promise.resolve([
|
|
{
|
|
name: 'Service 1',
|
|
status: 'passing',
|
|
description: 'Everything is working great',
|
|
lastUpdated: new Date(0),
|
|
},
|
|
{
|
|
name: 'Service 2',
|
|
status: 'failing',
|
|
description: 'Literally everything is broken',
|
|
lastUpdated: new Date(0),
|
|
},
|
|
]);
|
|
|
|
|
|
const module = new ServicesModule(virtualGitClient, {caretaker: {}, ...mockNgDevConfig});
|
|
Object.defineProperty(module, 'data', {value: fakeData});
|
|
await module.printToTerminal();
|
|
|
|
|
|
expect(infoGroupSpy).toHaveBeenCalledWith('Service Statuses');
|
|
expect(infoSpy).toHaveBeenCalledWith('Service 1 ✅');
|
|
expect(infoGroupSpy)
|
|
.toHaveBeenCalledWith(`Service 2 ❌ (Updated: ${new Date(0).toLocaleString()})`);
|
|
expect(infoSpy).toHaveBeenCalledWith(' Details: Literally everything is broken');
|
|
});
|
|
});
|
|
});
|