summaryrefslogtreecommitdiffstats
path: root/src/pybind/mgr/dashboard/frontend/src/testing/activated-route-stub.ts
blob: e217838600c47dc19664d78a31b4a81f59272fcf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import { ActivatedRoute } from '@angular/router';

import { ReplaySubject } from 'rxjs';

/**
 * An ActivateRoute test double with a `params` observable.
 * Use the `setParams()` method to add the next `params` value.
 */
export class ActivatedRouteStub extends ActivatedRoute {
  // Use a ReplaySubject to share previous values with subscribers
  // and pump new values into the `params` observable
  private subject = new ReplaySubject<object>();

  constructor(initialParams?: object) {
    super();
    this.setParams(initialParams);
  }

  /** The mock params observable */
  readonly params = this.subject.asObservable();

  /** Set the params observables's next value */
  setParams(params?: object) {
    this.subject.next(params);
  }
}