Exemple #1
0
  it('should dispose notifier if source observable completes', () => {
    const e1 =   hot('--a--|     ');
    const e1subs =   '^    !     ';
    const e2 =   hot('-------x--|');
    const e2subs =   '^    !     ';
    const expected = '--a--|     ';

    expectObservable(e1.pipe(takeUntil(e2))).toBe(expected);
    expectSubscriptions(e1.subscriptions).toBe(e1subs);
    expectSubscriptions(e2.subscriptions).toBe(e2subs);
  });
Exemple #2
0
    // -----------------------------------------------------------------------------------------------------
    // @ Lifecycle hooks
    // -----------------------------------------------------------------------------------------------------

    /**
     * On init
     */
    ngOnInit(): void
    {
        // Subscribe to config changes
        this._fuseConfigService.config
            .pipe(takeUntil(this._unsubscribeAll))
            .subscribe(
                (config) => {
                    this.fuseConfig = config;
                }
            );
    }
Exemple #3
0
  it('should take all values when notifier does not complete', () => {
    const e1 =     hot('--a--b--c--d--e--f--g--|');
    const e1subs =     '^                      !';
    const e2 =     hot('-');
    const e2subs =     '^                      !';
    const expected =   '--a--b--c--d--e--f--g--|';

    expectObservable(e1.pipe(takeUntil(e2))).toBe(expected);
    expectSubscriptions(e1.subscriptions).toBe(e1subs);
    expectSubscriptions(e2.subscriptions).toBe(e2subs);
  });
Exemple #4
0
  asDiagram('takeUntil')('should take values until notifier emits', () => {
    const e1 =     hot('--a--b--c--d--e--f--g--|');
    const e1subs =     '^            !          ';
    const e2 =     hot('-------------z--|       ');
    const e2subs =     '^            !          ';
    const expected =   '--a--b--c--d-|          ';

    expectObservable(e1.pipe(takeUntil(e2))).toBe(expected);
    expectSubscriptions(e1.subscriptions).toBe(e1subs);
    expectSubscriptions(e2.subscriptions).toBe(e2subs);
  });
Exemple #5
0
  it('should raise error if source raises error before notifier emits', () => {
    const e1 =     hot('--a--b--c--d--#     ');
    const e1subs =     '^             !     ';
    const e2 =     hot('----------------a--|');
    const e2subs =     '^             !     ';
    const expected =   '--a--b--c--d--#     ';

    expectObservable(e1.pipe(takeUntil(e2))).toBe(expected);
    expectSubscriptions(e1.subscriptions).toBe(e1subs);
    expectSubscriptions(e2.subscriptions).toBe(e2subs);
  });
 switchMap(() => merge( // then emit every 500ms, and when the navigation ends or cancels or errors. This delay must
                        // match the transition duration in the .scss file
   timer(0, 500).pipe(
     map(i => 100 - (100 / Math.pow(2, i))), // emit 0 then 50, 75, 87.5, etc.
     takeWhile(i => i < 99.95), // stop because that just triggers change detection with no visual change anymore
     takeUntil(end$), // but stop emitting every 500ms when the navigation ends or cancels or errors
     map(i => ({ value: i }))
   ),
   end$.pipe(first(), map(() => null)) // set back to null when the navigation ends or cancels or errors to hide
                                       // the progress bar
 ))
Exemple #7
0
  it('should raise error immediately if source throws', () => {
    const e1 = cold( '#');
    const e1subs =   '(^!)';
    const e2 =   hot('--x');
    const e2subs =   '(^!)';
    const expected = '#';

    expectObservable(e1.pipe(takeUntil(e2))).toBe(expected);
    expectSubscriptions(e1.subscriptions).toBe(e1subs);
    expectSubscriptions(e2.subscriptions).toBe(e2subs);
  });
Exemple #8
0
  it('should complete when notifier emits before source observable emits', () => {
    const e1 =     hot('----a--|');
    const e1subs =     '^ !     ';
    const e2 =     hot('--x     ');
    const e2subs =     '^ !     ';
    const expected =   '--|     ';

    expectObservable(e1.pipe(takeUntil(e2))).toBe(expected);
    expectSubscriptions(e1.subscriptions).toBe(e1subs);
    expectSubscriptions(e2.subscriptions).toBe(e2subs);
  });
Exemple #9
0
  it('should not complete when source and notifier do not complete', () => {
    const e1 =     hot('-');
    const e1subs =     '^';
    const e2 =     hot('-');
    const e2subs =     '^';
    const expected =   '-';

    expectObservable(e1.pipe(takeUntil(e2))).toBe(expected);
    expectSubscriptions(e1.subscriptions).toBe(e1subs);
    expectSubscriptions(e2.subscriptions).toBe(e2subs);
  });
Exemple #10
0
  it('should not complete when notifier is empty if source observable does not complete', () => {
    const e1 =     hot('-');
    const e1subs =     '^';
    const e2 =     hot('--|');
    const e2subs =     '^ !';
    const expected =   '---';

    expectObservable(e1.pipe(takeUntil(e2))).toBe(expected);
    expectSubscriptions(e1.subscriptions).toBe(e1subs);
    expectSubscriptions(e2.subscriptions).toBe(e2subs);
  });