.`);
    });
    // https://stackblitz.com/edit/angular-wlenwd?file=src%2Fapp%2Fapp.component.ts
    it('should support view and content queries matching the same element', () => {
      /**
       * 
       * 
       * class Cmpt {
       *  @ViewChildren('foo, bar') foos;
       * }
       */
      const AppComponent = createComponent(
          'app-component',
          function(rf: RenderFlags, ctx: any) {
            if (rf & RenderFlags.Create) {
              ɵɵelementStart(0, 'div', 0);
              { ɵɵelement(1, 'div', null, 2); }
              ɵɵelementEnd();
              ɵɵelement(3, 'div', 1, 3);
            }
          },
          5, 0, [WithContentDirective], [],
          function(rf: RenderFlags, ctx: any) {
            if (rf & RenderFlags.Create) {
              ɵɵviewQuery(['foo', 'bar'], true);
            }
            if (rf & RenderFlags.Update) {
              let tmp: any;
              ɵɵqueryRefresh(tmp = ɵɵloadQuery
>()) &&
                  (ctx.foos = tmp as QueryList);
            }
          },
          [], [], undefined, [['with-content', ''], ['id', 'after'], ['foo', ''], ['bar', '']]);
      const fixture = new ComponentFixture(AppComponent);
      const viewQList = fixture.component.foos;
      expect(viewQList.length).toBe(2);
      expect(withContentInstance!.foos.length).toBe(1);
      expect(viewQList.first.nativeElement).toBe(withContentInstance!.foos.first.nativeElement);
      expect(viewQList.last.nativeElement.id).toBe('after');
    });
    it('should not report deep content query matches found above content children', () => {
      /**
       * 
       *   
    <-- should match content query
       * 
       *       
       *         
       *       
       *    
       *    
       */
      class ViewQueryComponent {
        // @ViewChildren(TextDirective)
        texts!: QueryList;
        static ɵfac = () => new ViewQueryComponent();
        static ɵcmp = ɵɵdefineComponent({
          type: ViewQueryComponent,
          selectors: [['view-query']],
          consts: [['text', 'A'], ['text', 'B'], ['text', 'C'], ['text', 'D'], ['text', 'E']],
          template:
              function(rf: RenderFlags, ctx: ViewQueryComponent) {
                if (rf & RenderFlags.Create) {
                  ɵɵelement(0, 'span', 0);
                  ɵɵelementStart(1, 'div', 1);
                  ɵɵelementStart(2, 'span', 2);
                  { ɵɵelement(3, 'span', 3); }
                  ɵɵelementEnd();
                  ɵɵelementEnd();
                  ɵɵelement(4, 'span', 4);
                }
              },
          decls: 5,
          vars: 0,
          viewQuery:
              function(rf: RenderFlags, ctx: ViewQueryComponent) {
                let tmp: any;
                if (rf & RenderFlags.Create) {
                  ɵɵviewQuery(TextDirective, true);
                }
                if (rf & RenderFlags.Update) {
                  ɵɵqueryRefresh(tmp = ɵɵloadQuery>()) &&
                      (ctx.texts = tmp as QueryList);
                }
              },
          directives: [TextDirective]
        });
      }
      const fixture = new ComponentFixture(ViewQueryComponent);
      expect(fixture.component.texts.map(item => item.value)).toEqual(['A', 'B', 'C', 'D', 'E']);
    });
  });
});