Size: a a a

Советский Angular

2021 July 29

E

Ekaterina in Советский Angular
Думала про это, но надо посмотреть, что я какую-то параллельную логику не сломаю. У нас иногда бывает, что shareReply не стоит применять
источник

SS

Stanislav Sokolov in Советский Angular
Самое главное, если в шаблоне, не забыть refCount: true потому что тогда он будет жив всегда, или до takeUntil если есть
источник

SS

Stanislav Sokolov in Советский Angular
можно еще без рефкаунта, просто shareReplay но тогда нужен takeUntil. У нас в некоторых местах есть такое, потому что бывает какая то часть шаблона (под/от)писывается когда срабатывает ngIf. А с рефКаунтом если он доходит до 0 а потом снова в 1 каждый раз происходит переподписка на верхний поток.
источник

E

Ekaterina in Советский Angular
Мы чаще всего используем просто shareReplay(1), чтобы получить данные с сервера для дропдаунов каких-нибудь и потом использовать их на всей форме.
источник

AS

Anton Shvets in Советский Angular
они потом не пропадают и остаются жить
источник

E

Ekaterina in Советский Angular
А это же можно как-то напрямую отследить? Какими-нибудь тулзами или профилировщиками?
источник

AS

Anton Shvets in Советский Angular
в мемори снапшоте можно найти. ReplaySubject с нужными данными.
источник

SS

Stanislav Sokolov in Советский Angular
а какой там по дефолту refCount?
источник

SS

Stanislav Sokolov in Советский Angular
судя по всему false
источник

SS

Stanislav Sokolov in Советский Angular
я всегда делаю shareReplay(1, {refCount:true/false}) что бы не думать
источник

SS

Stanislav Sokolov in Советский Angular
Да, они будут жить вечно, но если они в сервисе то это может быть нормально :)
источник

A

Alex Radionov in Советский Angular
Коллеги, доброе утро, пишу первый unit тест для продакшена и при тестирвоании шаблона вышла заминка.
примерное содержание моих файлов

// component.html
<ng-template #titleTemplate>
   <span>{{ myTitle }}</span>
</ng-template>

// component.spec.ts
beforeEach(() => {
 fixture = TestBed.createComponent(IwPmEventListComponent);
 fixture.detectChanges();
 const htmlElement: HTMLElement = fixture.nativeElement;
// {}
 
сomponent = fixture.componentInstance;
});


проблема:
htmlElement всегда равен пустому объекту
и даже обращение сomponent.titleTemplate не дает ожидаемых результатов
источник

AS

Anton Shvets in Советский Angular
никакого
источник

SS

Stanislav Sokolov in Советский Angular
ну там false, не может быть никакого

кстати в 4 или 5 версии там был true из-за чего может все сломаться
источник

N👩

Nikita 👩🏻‍💻💭... in Советский Angular
а что именно нужно в компоненте тестировать? я бы рекомендовал просто те части, которые нужно тестировать, выносить в сервисы и тестировать их, так проще будет
источник

A

Alex Radionov in Советский Angular
здесь ситуация другая) пришел на проект с готовым кодом, и его нужно покрыть тестми)
источник

N👩

Nikita 👩🏻‍💻💭... in Советский Angular
весь?
источник

A

Alex Radionov in Советский Angular
в идеале весь, на практике посмотрим как оно пойдет)
источник

N👩

Nikita 👩🏻‍💻💭... in Советский Angular
тогда точно советую начинать не с компонентов )
источник

N👩

Nikita 👩🏻‍💻💭... in Советский Angular
если в компоненте есть логика, которую нужно протестировать, то лучше ее вынести в сервис, и протестировать его
источник