From eec7ff8ffd476000af134a016de41f4020e276ed Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Mon, 1 Feb 2021 11:07:08 +0100 Subject: [PATCH] OZG-209 poll test -> skip --- .../src/lib/command.repository.spec.ts | 6 ++-- .../src/lib/command.repository.ts | 2 +- .../src/lib/command.service.spec.ts | 29 +++++++++++++++++-- .../command-shared/src/lib/command.service.ts | 8 ++--- 4 files changed, 34 insertions(+), 11 deletions(-) diff --git a/goofy-client/libs/command-shared/src/lib/command.repository.spec.ts b/goofy-client/libs/command-shared/src/lib/command.repository.spec.ts index 4547af511a..a662dad0b7 100644 --- a/goofy-client/libs/command-shared/src/lib/command.repository.spec.ts +++ b/goofy-client/libs/command-shared/src/lib/command.repository.spec.ts @@ -59,19 +59,19 @@ describe('CommandRepository', () => { }) it('should call resourceFactory with resource', () => { - repository.getUpdatedCommand(commandResource); + repository.getCommand(commandResource); expect(resourceFactory.from).toHaveBeenCalledWith(commandResource); }) it('should call resourceWrapper with selfLink', () => { - repository.getUpdatedCommand(commandResource); + repository.getCommand(commandResource); expect(resourceWrapper.get).toHaveBeenCalledWith(getUrl(commandResource)); }) it('should return value', () => { - const result = repository.getUpdatedCommand(commandResource); + const result = repository.getCommand(commandResource); expect(result).toBe(returnResourceValue); }) diff --git a/goofy-client/libs/command-shared/src/lib/command.repository.ts b/goofy-client/libs/command-shared/src/lib/command.repository.ts index 2dce54d0ef..b1f2dc6216 100644 --- a/goofy-client/libs/command-shared/src/lib/command.repository.ts +++ b/goofy-client/libs/command-shared/src/lib/command.repository.ts @@ -13,7 +13,7 @@ export class CommandRepository { return this.resourceFacotry.from(resource).post(linkrel, command); } - public getUpdatedCommand(resource: CommandResource): Observable<CommandResource> { + public getCommand(resource: CommandResource): Observable<CommandResource> { return this.resourceFacotry.from(resource).get(getUrl(resource)); } diff --git a/goofy-client/libs/command-shared/src/lib/command.service.spec.ts b/goofy-client/libs/command-shared/src/lib/command.service.spec.ts index 0f3f5fcbf2..9201fbfdca 100644 --- a/goofy-client/libs/command-shared/src/lib/command.service.spec.ts +++ b/goofy-client/libs/command-shared/src/lib/command.service.spec.ts @@ -67,16 +67,16 @@ describe('CommandService', () => { }) }) - describe('get updated command', () => { + describe('get command', () => { beforeEach(() => { - repository.getUpdatedCommand.mockReturnValue(commandResource); + repository.getCommand.mockReturnValue(commandResource); }) it('should call repository with resource', () => { service.getUpdatedCommand(commandResource); - expect(repository.getUpdatedCommand).toHaveBeenCalledWith(commandResource); + expect(repository.getCommand).toHaveBeenCalledWith(commandResource); }) it('should return value', () => { @@ -107,4 +107,27 @@ describe('CommandService', () => { expect(result).toBe(returnValue); }) }) + + describe.skip('poll command', () => { + + const stateResource: StateResource<CommandResource> = createStateResource(createCommandResource([CommandLinkRel.UPDATE])); + const returnValue: CommandResource = createCommandResource([CommandLinkRel.UPDATE]); + + beforeEach(() => { + repository.getCommand.mockReturnValue(cold('a', { a: returnValue })); + }) + + it('should poll after intervall time', (done) => { + service.pollCommand(stateResource).subscribe(() => { + setTimeout(() => { + expect(repository.getCommand).toHaveBeenCalled(); + done(); + }, service.interval); + /* window.setInterval(() => { + expect(repository.getCommand).toHaveBeenCalled(); + done(); + }, service.interval); */ + }) + }) + }) }) \ No newline at end of file diff --git a/goofy-client/libs/command-shared/src/lib/command.service.ts b/goofy-client/libs/command-shared/src/lib/command.service.ts index d44e277363..fda91780e2 100644 --- a/goofy-client/libs/command-shared/src/lib/command.service.ts +++ b/goofy-client/libs/command-shared/src/lib/command.service.ts @@ -10,7 +10,7 @@ import { CommandRepository } from './command.repository'; @Injectable() export class CommandService { - private readonly interval: number = 500; + readonly interval: number = 500; private checkIfCommandIsDoneInterval: number; constructor(private repository: CommandRepository) { } @@ -25,11 +25,11 @@ export class CommandService { private processWithStateResource(stateResource: StateResource<CommandResource>): Observable<StateResource<CommandResource>> { return !this.isCommandDone(stateResource.resource) - ? this.startIntervalUpdate(stateResource) + ? this.pollCommand(stateResource) : new BehaviorSubject(createStateResource(stateResource.resource)); } - startIntervalUpdate(stateResource: StateResource<CommandResource>): Observable<StateResource<CommandResource>> { + public pollCommand(stateResource: StateResource<CommandResource>): Observable<StateResource<CommandResource>> { let updatedCommand: BehaviorSubject<StateResource<CommandResource>> = new BehaviorSubject(stateResource); this.checkIfCommandIsDoneInterval = window.setInterval(() => { @@ -47,7 +47,7 @@ export class CommandService { } getUpdatedCommand(resource: CommandResource): Observable<CommandResource> { - return this.repository.getUpdatedCommand(resource); + return this.repository.getCommand(resource); } private isCommandDone(resource: Resource): boolean { -- GitLab