Как написать модульный тест aggrid cellRenderer с возвращаемым значением в angular

ТС:

columnDefs = [
 { headerName: 'columnone', field: 'one', width: 120, sortable: true, 
   cellRenderer: (data) => {
        return this.limitCommonUtil.numberFormatter(data?.data?.upperAmount);
 }
    },
    { headerName: 'columntwo', field: 'two', width: 120, sortable: true,
      cellRenderer: (data) => {
        return this.limitCommonUtil.dateFormatterDDMMMYYYY(data?.data?.startDate);
      }]

HTML:

<ag-grid-angular
            [rowData] = "(dataStream)"
            [columnDefs] = "columnDefs"
            class = "side-panels-container-grid"
            [gridOptions] = "gridOptionsDefault"
            (selectionChanged) = "onSelectionChanged()">
        </ag-grid-angular>

как написать модульный тест для columndefs в jasmine и karma? я не могу охватить функцию возврата cellRendered. Получение ошибки, как показано ниже.

Ошибка: Не удается прочитать свойства undefined (чтение «данных»)

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
0
34
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Правильно ли вы издевались над данными для сетки в своем тесте? Если вас интересует только модульное тестирование самого cellRenderer, вы можете:

const cellRenderer = component.columnDefs.find(c => c.headerName === 'columnone').cellRenderer as any;
expect(cellRenderer({data: { upperAmount: 10 }})).toEqual('Whatever is expected');

Я попробовал ваш способ, но получил ошибку типа «Ожидаемое наблюдаемое ({ _isScalar: false, _subscribe: Function}) равное 10». @йохан нордлиндер

Ashwini 31.03.2022 13:11

О, возвращает ли this.limitCommonUtil.numberFormatter наблюдаемое значение? Я ожидал, что он вернет строку.

Johan Nordlinder 31.03.2022 14:18

у вас есть какие-нибудь идеи о том, как написать ожидаемый случай для этого? @йохан нордлиндер

Ashwini 31.03.2022 14:27

Можете ли вы показать свой текущий код, как ожидаемую, так и функцию numberFormatter?

Johan Nordlinder 31.03.2022 14:44

но средство форматирования чисел возвращает только число. numberFormatter (значение) { if (isNaN (значение)) { return 0; } else { return Intl.NumberFormat().format(Math.round(value)); } } @йохан нордлиндер

Ashwini 31.03.2022 15:18

если вы можете, не могли бы вы проверить по ссылке ниже? stackoverflow.com/questions/71428583/… @йохан нордлиндер

Ashwini 31.03.2022 15:43

Другие вопросы по теме