message: Add mock for translation service
  (to keep SnackBar from calling the real one)
diff: * SPDX-License-Identifier: MIT
  */
  -import { TranslateModule } from '@ngx-translate/core'
  +import { TranslateModule, TranslateService } from '@ngx-translate/core'
  import { MatInputModule } from '@angular/material/input'
  import { BasketService } from '../Services/basket.service'
  import { async, ComponentFixture, fakeAsync, TestBed } from '@angular/core/testing'
  @@ -20,12 +20,14 @@ import { PurchaseBasketComponent } from '../purchase-basket/purchase-basket.comp
  import { UserService } from '../Services/user.service'
  import { DeluxeGuard } from '../app.guard'
  import { MatSnackBar, MatSnackBarModule } from '@angular/material/snack-bar'
  +import { EventEmitter } from '@angular/core'
  describe('PurchaseBasketComponent', () => {
  let component: PurchaseBasketComponent
  let fixture: ComponentFixture<PurchaseBasketComponent>
  let basketService
  let userService
  + let translateService: any
  let deluxeGuard
  let snackBar: any
  @@ -38,6 +40,11 @@ describe('PurchaseBasketComponent', () => {
  basketService.put.and.returnValue(of({}))
  userService = jasmine.createSpyObj('UserService',['whoAmI'])
  userService.whoAmI.and.returnValue(of({}))
  + translateService = jasmine.createSpyObj('TranslateService', ['get'])
  + translateService.get.and.returnValue(of({}))
  + translateService.onLangChange = new EventEmitter()
  + translateService.onTranslationChange = new EventEmitter()
  + translateService.onDefaultLangChange = new EventEmitter()
  deluxeGuard = jasmine.createSpyObj('',['isDeluxe'])
  deluxeGuard.isDeluxe.and.returnValue(false)
  snackBar = jasmine.createSpyObj('MatSnackBar',['open'])
  @@ -57,6 +64,7 @@ describe('PurchaseBasketComponent', () => {
  MatSnackBarModule
  ],
  providers: [
  + { provide: TranslateService, useValue: translateService },
  { provide: BasketService, useValue: basketService },
  { provide: MatSnackBar, useValue: snackBar },
  { provide: UserService , useValue: userService },
  @@ -178,7 +186,7 @@ describe('PurchaseBasketComponent', () => {
  expect(basketService.put).not.toHaveBeenCalled()
  }))
  - xit('should not increase quantity on error updating basket item and log the error', fakeAsync(() => {
  + it('should not increase quantity on error updating basket item and log the error', fakeAsync(() => {
  basketService.find.and.returnValue(of({ Products: [ { BasketItem: { id: 1, quantity: 1 } } ] }))
  basketService.get.and.returnValue(of({ id: 1, quantity: 1 }))
  basketService.put.and.returnValue(throwError('Error'))
  @@ -221,7 +229,7 @@ describe('PurchaseBasketComponent', () => {
  expect(basketService.put).not.toHaveBeenCalled()
  }))
  - xit('should not decrease quantity on error updating basket item and log the error', fakeAsync(() => {
  + it('should not decrease quantity on error updating basket item and log the error', fakeAsync(() => {
  basketService.find.and.returnValue(of({ Products: [ { BasketItem: { id: 1, quantity: 1 } } ] }))
  basketService.get.and.returnValue(of({ id: 1, quantity: 1 }))
  basketService.put.and.returnValue(throwError('Error'))
  