Size: a a a

2019 November 27

AO

Alex Okrushko in Angular Kyiv
где?
источник

A

Antony in Angular Kyiv
источник

AO

Alex Okrushko in Angular Kyiv
expect(store.dispatch).toHaveBeenCalledWith(myActionUnderTest());
источник

A

Antony in Angular Kyiv
Alex Okrushko
expect(store.dispatch).toHaveBeenCalledWith(myActionUnderTest());
Не знал. Спасибо!
источник

AO

Alex Okrushko in Angular Kyiv
spyOn мутирует объект
источник

A

Antony in Angular Kyiv
А я думал там какая-то черная магия возвращает мне переменную в которую записывает количество вызовов и параметры вызова функции которую я указал 😅
источник
2019 November 28

N

Nik in Angular Kyiv
доброго утра. я смотрю в группе недавно был юбилей, пол к members, с чем всех, наверное, можно поздравить

ищу к себе в комманду ангуларщика, готовы рассмотреть разные варианты по соотношению цена/опыт/качество

p.s. с днем благодарения
источник

B

Bohdan in Angular Kyiv
😔😔
источник

E

EvgenyB in Angular Kyiv
Nik
доброго утра. я смотрю в группе недавно был юбилей, пол к members, с чем всех, наверное, можно поздравить

ищу к себе в комманду ангуларщика, готовы рассмотреть разные варианты по соотношению цена/опыт/качество

p.s. с днем благодарения
привет. подскажи , какие  проекты должны быть в Гите  у кандидата - чтобы 'wow  берем!🙂
источник

N

Nik in Angular Kyiv
EvgenyB
привет. подскажи , какие  проекты должны быть в Гите  у кандидата - чтобы 'wow  берем!🙂
в знаниях сила
источник

N

Nik in Angular Kyiv
источник

A

Antony in Angular Kyiv
@AlexOkrushko Привет, а это нормально выносить мок initialState для provideMockStore в отдельный файл и делать типизацию в стиле as MockStoreConfig<any>? Так как у меня в сервисе есть несколько селекторов, и они работают с большими обьектами в сторе, и хранить этот огромный обьект в spec файле - не удобно.
В целом мокать стор в таком подходе достаточно времязатратно. Удобно провайдить значения для конкретного обзервера который мы селектим, по типу serviceToTest.selectedEntity$ = of(mock). Но так как эти селекторы используются только внутри самого сервиса - их, мне кажется, правильно делать private, а юнит тесты не должны влиять на то как мы пишем код, соответственно - я не могу их видеть из теста
источник

AO

Alex Okrushko in Angular Kyiv
@wonder_tony Смотря что ты тестируешь.
Для начала, тебе точно нужен store в сервисе?
По тестированию:
- если ты тестируешь сам сервис, то задавай значения для селекторов ( mockStore.overrideSelector )
- если ты тестируешь компонент, который использует этот сервис, то мокай сам сервис
- если ты тестируешь integration между несколькими компонентами, и сервис настоящий, то лучше тогда уже выстраивать стейт как есть (setState ) - это уже не юнит тест, а чуть повыше.
источник

A

Antony in Angular Kyiv
@AlexOkrushko Круто, overrideSelector выглядит как именно то что я искал!
Но, насколько я понял, это добавили в 8 версии ngrx, а у нас пока 7.3.
Хочу попробовать убедить команду что нам стоит делать апгрейд. Но наш проект используется как модуль в других проектах используя их peerDependencies (на которые мы мало можем повлиять). Соответственно, насколько я понимаю, если мы заиспользуем фичи с 8го ngrx для кода используемого в продакшене, он будет ломаться в приложениях с 7мым ngrx :c
источник

AO

Alex Okrushko in Angular Kyiv
Монорепо 😉
Их никто не заставляет использовать более новую версию вашего проекта? Когда будут готовы перейти - у вас уже всё есть.
Есть решение и без overrideSelector - покажу когда доберусь до лаптопа.
источник

A

Antony in Angular Kyiv
Alex Okrushko
Монорепо 😉
Их никто не заставляет использовать более новую версию вашего проекта? Когда будут готовы перейти - у вас уже всё есть.
Есть решение и без overrideSelector - покажу когда доберусь до лаптопа.
В этом плане есть давление со стороны бизнеса. Новые фичи и фиксы всё ещё нужно заливать.
А монорепа это да) Слышал что в других частях компании некоторые модули уже сливают в один репозиторий, но глобально пока такого нет
источник

AD

Alex Di in Angular Kyiv
Всем добрый день, подскажите, пожалуйста, как установить фокус по событию на элемент ng-select.
Для обычного инпута или селекта работает вот так:
@ViewChild('cargoSelect') cargoSelect;
this.cargoSelect.nativeElement.focus();
где  <input #cargoSelect>
а для ng-select пишет: this.cargoSelect.nativeElement is undefined
если прописать <ng-select  #cargoSelect....>
источник

AO

Alex Okrushko in Angular Kyiv
Antony
В этом плане есть давление со стороны бизнеса. Новые фичи и фиксы всё ещё нужно заливать.
А монорепа это да) Слышал что в других частях компании некоторые модули уже сливают в один репозиторий, но глобально пока такого нет
так вот, без overrideSelector можно сделать следующее:
Если используется module import для селекторов: import * as selectors from 'path';, то в тесте можно задать для них значение вот так: spyOn(selectors, 'mySelector').and.returnValue(MOCKED_VALUE);.
источник

A

Antony in Angular Kyiv
Alex Okrushko
так вот, без overrideSelector можно сделать следующее:
Если используется module import для селекторов: import * as selectors from 'path';, то в тесте можно задать для них значение вот так: spyOn(selectors, 'mySelector').and.returnValue(MOCKED_VALUE);.
Почему то у меня этот трюк не работает (селект пытается достать значения со стора вместо того что бы просто вернуть мок). Дома попробую создать тестовый проект и проверить там. Спасибо :)
источник

O

Oleksandr in Angular Kyiv
Иногда при импорте стоит фриз на объект
ТАм надо пепеопределять через Object.defineProperty
источник