tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

NodeFor.test-d.ts (5060B)


      1 /**
      2 * @license
      3 * Copyright 2024 Google Inc.
      4 * SPDX-License-Identifier: Apache-2.0
      5 */
      6 import type {NodeFor} from 'puppeteer';
      7 import {expectType, expectNotType} from 'tsd';
      8 
      9 declare const nodeFor: <Selector extends string>(
     10  selector: Selector,
     11 ) => NodeFor<Selector>;
     12 
     13 {
     14  {
     15    expectType<HTMLTableRowElement>(
     16      nodeFor(
     17        '[data-testid="my-component"] div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div tbody tr',
     18      ),
     19    );
     20    expectNotType<Element>(
     21      nodeFor(
     22        '[data-testid="my-component"] div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div div tbody tr',
     23      ),
     24    );
     25  }
     26  {
     27    expectType<HTMLAnchorElement>(nodeFor('a'));
     28    expectNotType<Element>(nodeFor('a'));
     29  }
     30  {
     31    expectType<HTMLAnchorElement>(nodeFor('a#ignored'));
     32    expectNotType<Element>(nodeFor('a#ignored'));
     33  }
     34  {
     35    expectType<HTMLAnchorElement>(nodeFor('a.ignored'));
     36    expectNotType<Element>(nodeFor('a.ignored'));
     37  }
     38  {
     39    expectType<HTMLAnchorElement>(nodeFor('a[ignored'));
     40    expectNotType<Element>(nodeFor('a[ignored'));
     41  }
     42  {
     43    expectType<HTMLAnchorElement>(nodeFor('a:ignored'));
     44    expectNotType<Element>(nodeFor('a:ignored'));
     45  }
     46  {
     47    expectType<HTMLAnchorElement>(nodeFor('ignored a'));
     48    expectNotType<Element>(nodeFor('ignored a'));
     49  }
     50  {
     51    expectType<HTMLAnchorElement>(nodeFor('ignored a#ignored'));
     52    expectNotType<Element>(nodeFor('ignored a#ignored'));
     53  }
     54  {
     55    expectType<HTMLAnchorElement>(nodeFor('ignored a.ignored'));
     56    expectNotType<Element>(nodeFor('ignored a.ignored'));
     57  }
     58  {
     59    expectType<HTMLAnchorElement>(nodeFor('ignored a[ignored'));
     60    expectNotType<Element>(nodeFor('ignored a[ignored'));
     61  }
     62  {
     63    expectType<HTMLAnchorElement>(nodeFor('ignored a:ignored'));
     64    expectNotType<Element>(nodeFor('ignored a:ignored'));
     65  }
     66  {
     67    expectType<HTMLAnchorElement>(nodeFor('ignored > a'));
     68    expectNotType<Element>(nodeFor('ignored > a'));
     69  }
     70  {
     71    expectType<HTMLAnchorElement>(nodeFor('ignored > a#ignored'));
     72    expectNotType<Element>(nodeFor('ignored > a#ignored'));
     73  }
     74  {
     75    expectType<HTMLAnchorElement>(nodeFor('ignored > a.ignored'));
     76    expectNotType<Element>(nodeFor('ignored > a.ignored'));
     77  }
     78  {
     79    expectType<HTMLAnchorElement>(nodeFor('ignored > a[ignored'));
     80    expectNotType<Element>(nodeFor('ignored > a[ignored'));
     81  }
     82  {
     83    expectType<HTMLAnchorElement>(nodeFor('ignored > a:ignored'));
     84    expectNotType<Element>(nodeFor('ignored > a:ignored'));
     85  }
     86  {
     87    expectType<HTMLAnchorElement>(nodeFor('ignored + a'));
     88    expectNotType<Element>(nodeFor('ignored + a'));
     89  }
     90  {
     91    expectType<HTMLAnchorElement>(nodeFor('ignored ~ a'));
     92    expectNotType<Element>(nodeFor('ignored ~ a'));
     93  }
     94  {
     95    expectType<HTMLAnchorElement>(nodeFor('ignored | a'));
     96    expectNotType<Element>(nodeFor('ignored | a'));
     97  }
     98  {
     99    expectType<HTMLAnchorElement>(
    100      nodeFor('ignored ignored > ignored + ignored | a#ignore'),
    101    );
    102    expectNotType<Element>(
    103      nodeFor('ignored ignored > ignored + ignored | a#ignore'),
    104    );
    105  }
    106  {
    107    expectType<HTMLAnchorElement>(nodeFor('custom-element >>> a'));
    108    expectNotType<Element>(nodeFor('custom-element >>> a'));
    109  }
    110  {
    111    expectType<Element>(nodeFor('div ::-p-text(world)'));
    112    expectNotType<HTMLDivElement>(nodeFor('div ::-p-text(world)'));
    113  }
    114  {
    115    expectType<HTMLDivElement>(nodeFor('div ::-p-text(world) >>>> div'));
    116    expectNotType<Element>(nodeFor('div ::-p-text(world) >>>> div'));
    117  }
    118  {
    119    expectType<HTMLAnchorElement>(nodeFor('a::-p-text(Hello)'));
    120    expectNotType<Element>(nodeFor('a::-p-text(Hello)'));
    121  }
    122  {
    123    expectType<HTMLAnchorElement>(nodeFor('a:is([href], [href])'));
    124    expectNotType<Element>(nodeFor('a:is([href], [href])'));
    125  }
    126 }
    127 {
    128  {
    129    expectType<Element>(nodeFor(''));
    130  }
    131  {
    132    expectType<Element>(nodeFor('#ignored'));
    133  }
    134  {
    135    expectType<Element>(nodeFor('.ignored'));
    136  }
    137  {
    138    expectType<Element>(nodeFor('[ignored'));
    139  }
    140  {
    141    expectType<Element>(nodeFor(':ignored'));
    142  }
    143  {
    144    expectType<Element>(nodeFor('ignored #ignored'));
    145  }
    146  {
    147    expectType<Element>(nodeFor('ignored .ignored'));
    148  }
    149  {
    150    expectType<Element>(nodeFor('ignored [ignored'));
    151  }
    152  {
    153    expectType<Element>(nodeFor('ignored :ignored'));
    154  }
    155  {
    156    expectType<Element>(nodeFor('ignored > #ignored'));
    157  }
    158  {
    159    expectType<Element>(nodeFor('ignored > .ignored'));
    160  }
    161  {
    162    expectType<Element>(nodeFor('ignored > [ignored'));
    163  }
    164  {
    165    expectType<Element>(nodeFor('ignored > :ignored'));
    166  }
    167  {
    168    expectType<Element>(nodeFor('ignored + #ignored'));
    169  }
    170  {
    171    expectType<Element>(nodeFor('ignored ~ #ignored'));
    172  }
    173  {
    174    expectType<Element>(nodeFor('ignored | #ignored'));
    175  }
    176  {
    177    expectType<Element>(
    178      nodeFor('ignored ignored > ignored ~ ignored + ignored | #ignored'),
    179    );
    180  }
    181 }