github.com/web-platform-tests/wpt.fyi@v0.0.0-20240530210107-70cf978996f1/webdriver/path-test.js (about)

     1  /**
     2   * Copyright 2019 The WPT Dashboard Project. All rights reserved.
     3   * Use of this source code is governed by a BSD-style license that can be
     4   * found in the LICENSE file.
     5   */
     6  
     7  const {Page} = require('puppeteer');
     8  const expect = require('chai').expect;
     9  
    10  exports.tests = function(ctx) {
    11    const view = 'results';
    12    test(view, async () => {
    13      /** @type {Page} */
    14      const page = await ctx.browser.newPage();
    15      const url = `${ctx.server.url}/${view}/2dcontext/building-paths?label=stable`;
    16      await page.goto(url);
    17  
    18      const parts = await page.waitForFunction(
    19        view => {
    20          const app = document.querySelector('wpt-app');
    21          const results = app && app.shadowRoot && app.shadowRoot.querySelector(`wpt-${view}`);
    22          if (!results || results.isLoading) return;
    23          const parts = Array.from(
    24            results.shadowRoot.querySelectorAll('path-part')
    25          );
    26          if (parts.length) return parts;
    27        }, {}, view);
    28  
    29      await page.evaluate(
    30        parts => parts.map(p => p.shadowRoot.querySelector('a').innerText.trim()),
    31        parts
    32      ).then(linkNames => {
    33        expect(linkNames).to.deep.equal([
    34          "canvas_complexshapes_arcto_001.htm",
    35          "canvas_complexshapes_beziercurveto_001.htm",
    36        ]);
    37      });
    38    }).timeout(10000);
    39  };