import {TestBed} from '@angular/core/testing'; import {FeedbackOxService} from './feedback-ox.service'; import {PostMessageBridgeFactory} from 'ngx-post-message'; import {HttpClientTestingModule} from '@angular/common/http/testing'; import {AnswerService} from './answer.service'; import {EventEmitter} from '@angular/core'; import {SoundOxService} from './sound-ox.service'; import {ScreenTypeOx} from 'ox-core'; import {GameActionsService} from './game-actions.service'; describe('FeedbackOxService', () => { const answerServiceSpy: AnswerService = jasmine.createSpyObj>('AnswerService', ['onTryAnswer']); const soundServiceSpy = jasmine.createSpyObj('SoundService', ['playRightSound', 'playWrongSound']); let feedbackService: FeedbackOxService; let gameActions: GameActionsService; beforeEach(() => { TestBed.configureTestingModule( { providers: [ PostMessageBridgeFactory, {provide: SoundOxService, useValue: soundServiceSpy}, {provide: AnswerService, useValue: answerServiceSpy}, ], imports: [HttpClientTestingModule] }); feedbackService = TestBed.get(FeedbackOxService); gameActions = TestBed.get(GameActionsService); }); it('should be created', () => { expect(feedbackService).toBeTruthy(); }); it('After check correct answer must call play correct sound and send feedback-true- event', () => { spyOn(feedbackService.feedbackAnimation, 'emit'); gameActions.checkedAnswer.emit(true); expect(soundServiceSpy.playRightSound).toHaveBeenCalledWith(ScreenTypeOx.Game); expect(feedbackService.feedbackAnimation.emit).toHaveBeenCalledWith(true); }); it('After check wrong answer must call play wrong sound and send feedback-false- event', () => { spyOn(feedbackService.feedbackAnimation, 'emit'); gameActions.checkedAnswer.emit(false); expect(soundServiceSpy.playWrongSound).toHaveBeenCalledWith(ScreenTypeOx.Game); expect(feedbackService.feedbackAnimation.emit).toHaveBeenCalledWith(false); }); });