Угловая 2+ модульная испытательная труба - PullRequest
0 голосов
/ 10 января 2019

у меня есть труба

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
  name: 'filterArrayPipe'
})
export class FilterArrayPipe implements PipeTransform {
  transform(value: any, config: any, q: string) {
    if (config && q) {
      return value.filter(result => {
        return config.some(type => result[type].toString().toLowerCase().indexOf(q) > -1);
      });
    } else {
      return value;
    }
  }
}

и теперь я хочу сделать юнит-тест

import { FilterArrayPipe } from './filter-array.pipe';
describe('Pipe: FilterArray Pipe', () => {
  it('providing search value should return true', () => {
      const pipe = new FilterArrayPipe();

      expect(pipe.transform([{id: 123}, {id: 456}], ['id'], '456'))
        .toBe([{id: 456}]);
  });
});

Но я получаю следующую ошибку

Expected [ Object({ id: 456 }) ] to be [ Object({ id: 456 }) ].

1 Ответ

0 голосов
/ 10 января 2019

Вы должны использовать toEqual для сравнения.

expect(pipe.transform([{id: 123}, {id: 456}], ['id'], '456'))
        .toEqual([{id: 456}]);

См. toBe vs toEqual для более подробного ответа. Это та же разница, что и с == и ===.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...