|
1 |
| -import { BehaviorSubject, of } from 'rxjs'; |
| 1 | +import { BehaviorSubject, firstValueFrom, of } from 'rxjs'; |
2 | 2 | import { Operator } from '../operator/operator.interface';
|
3 | 3 | import { operatorList } from '../operator/operators/index';
|
4 | 4 | import { RulesetExecutor } from '../ruleset-executor';
|
5 |
| -import { ActionBlock, Ruleset } from '../structure'; |
| 5 | +import { Ruleset } from '../structure'; |
6 | 6 | import { filterRulesetsEventStream } from './filter-ruleset-event.operator';
|
7 | 7 |
|
8 | 8 | describe('Filter rulesets event operator', () => {
|
@@ -134,68 +134,45 @@ describe('Filter rulesets event operator', () => {
|
134 | 134 | }, {});
|
135 | 135 |
|
136 | 136 | const firstValue = rulesets.reduce<Record<string, RulesetExecutor>>((accRuleset, ruleset) => {
|
137 |
| - accRuleset[ruleset.id] = new RulesetExecutor(ruleset, {retrieveOrCreateFactStream: () => of(undefined), operators} as any); |
| 137 | + accRuleset[ruleset.id] = new RulesetExecutor(ruleset, { retrieveOrCreateFactStream: () => of(undefined), operators } as any); |
138 | 138 | return accRuleset;
|
139 | 139 | }, {});
|
140 | 140 |
|
141 | 141 | const rulesetsMapSubject$ = new BehaviorSubject<Record<string, RulesetExecutor>>(firstValue);
|
142 | 142 |
|
143 |
| - test('should consider only first ruleset', (done) => { |
| 143 | + test('should consider only first ruleset', async () => { |
144 | 144 |
|
145 |
| - rulesetsMapSubject$.pipe( |
146 |
| - filterRulesetsEventStream(['ruleset1']) |
147 |
| - ).subscribe(data => { |
148 |
| - expect(data.length).toBe(2); |
149 |
| - done(); |
150 |
| - }); |
| 145 | + const data = await firstValueFrom(rulesetsMapSubject$.pipe(filterRulesetsEventStream(['ruleset1']))); |
| 146 | + expect(data.length).toBe(2); |
151 | 147 |
|
152 | 148 | });
|
153 | 149 |
|
154 |
| - test('should consider only second ruleset', (done) => { |
| 150 | + test('should consider only second ruleset', async () => { |
155 | 151 |
|
156 |
| - rulesetsMapSubject$.pipe( |
157 |
| - filterRulesetsEventStream(['ruleset2']) |
158 |
| - ).subscribe(data => { |
159 |
| - expect(data.length).toBe(1); |
160 |
| - done(); |
161 |
| - }); |
| 152 | + const data = await firstValueFrom(rulesetsMapSubject$.pipe(filterRulesetsEventStream(['ruleset2']))); |
| 153 | + expect(data.length).toBe(1); |
162 | 154 |
|
163 | 155 | });
|
164 | 156 |
|
165 |
| - test('should consider all rulesets by not passing any filter', (done) => { |
| 157 | + test('should consider all rulesets by not passing any filter', async () => { |
166 | 158 |
|
167 |
| - rulesetsMapSubject$.pipe( |
168 |
| - filterRulesetsEventStream() |
169 |
| - ).subscribe(data => { |
170 |
| - expect(data.length).toBe(3); |
171 |
| - done(); |
172 |
| - }); |
| 159 | + const data = await firstValueFrom(rulesetsMapSubject$.pipe(filterRulesetsEventStream())); |
| 160 | + expect(data.length).toBe(3); |
173 | 161 |
|
174 | 162 | });
|
175 | 163 |
|
176 |
| - test('should consider all rulesets ids passed', (done) => { |
| 164 | + test('should consider all rulesets ids passed', async () => { |
177 | 165 |
|
178 |
| - rulesetsMapSubject$.pipe( |
179 |
| - filterRulesetsEventStream(['ruleset1', 'ruleset2']) |
180 |
| - ).subscribe(data => { |
181 |
| - expect(data.length).toBe(3); |
182 |
| - done(); |
183 |
| - }); |
| 166 | + const data = await firstValueFrom(rulesetsMapSubject$.pipe(filterRulesetsEventStream(['ruleset1', 'ruleset2']))); |
| 167 | + expect(data.length).toBe(3); |
184 | 168 |
|
185 | 169 | });
|
186 | 170 |
|
187 |
| - test('should not emit if ruleset id does not match any registered ruleset', async () => { |
| 171 | + test('should emit an empty array when no rulesets remain active', async () => { |
188 | 172 |
|
189 |
| - let emittedActions: ActionBlock[] | undefined; |
| 173 | + const data = await firstValueFrom(rulesetsMapSubject$.pipe(filterRulesetsEventStream(['ruleset3']))); |
| 174 | + expect(data.length).toBe(0); |
190 | 175 |
|
191 |
| - rulesetsMapSubject$.pipe( |
192 |
| - filterRulesetsEventStream(['ruleset3']) |
193 |
| - ).subscribe(data => { |
194 |
| - emittedActions = data; |
195 |
| - }); |
196 |
| - |
197 |
| - await jest.advanceTimersByTimeAsync(500); |
198 |
| - expect(emittedActions).toBe(undefined); |
199 | 176 | });
|
200 | 177 |
|
201 | 178 | });
|
0 commit comments