hunk.code_window:     ).subscribe(() => { /* noop */ });
       expect(sideEffects).to.deep.equal([0, 1, 2]);
     });
   });
hunk.labels: keep keep keep add keep
hunk.after_edit:   it('should not alter the source when the number of retries is smaller than 1', () => {
       const source = cold('--1-2-3-#');
       const subs =       ['^       !'];
       const expected =    '--1-2-3-#';
       const unsub =       '         !';
       const result = source.pipe(retry(0));
       expectObservable(result, unsub).toBe(expected);
       expectSubscriptions(source.subscriptions).toBe(subs);
     })
  
hunk.file_path: spec/operators/retry-spec.ts
hunk.type: add
file: import { firstValueFrom } from 'rxjs';
  import { a$ } from 'helpers';
  
  describe('firstValueFrom', () => {
    it('should infer the element type', () => {
      const r = firstValueFrom(a$); // $ExpectType Promise<A>
    })
  
    it('should infer the element type from a default value', () => {
      const r = firstValueFrom(a$, { defaultValue: null }); // $ExpectType Promise<A | null>
    });
  
    it('should require an argument', () => {
      const r = firstValueFrom(); // $ExpectError
    });
  
    it('should require an observable argument', () => {
      const r = firstValueFrom(Promise.resolve(42)); // $ExpectError
    });
  });
  