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 4547af511a310289831765309ec6ee6ffbe83999..a662dad0b7b6d630b61842ea032e86b070de5032 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 2dce54d0efbcde28fa106168a4dcb76a39a6bdd4..b1f2dc6216676c8c1bf38f9e1f89026f4467d4d2 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 0f3f5fcbf259ae3ab1aee8898599129d9e1dae8b..9201fbfdcaabe5a2e4190dbd06822686d8fcb8fc 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 d44e277363510503ae77aaf6822ce34151d26d64..fda91780e2b9e3622238bf2c53f4398971dd4856 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 {