github.com/web-platform-tests/wpt.fyi@v0.0.0-20240530210107-70cf978996f1/webdriver/webdriver.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 puppeteer = require('puppeteer'); 8 const log = require('debug')('wpt.fyi'); 9 10 const appserver = require('./appserver'); 11 const datastore = require('./datastore'); 12 const devData = require('./dev-data'); 13 14 /** 15 * @fileoverview The full puppeteer webdriver test suite. 16 */ 17 suite('Webdriver', function () { 18 19 suiteSetup(async function() { 20 this.timeout(90000); 21 22 // TODO(Hexcles): Pick free ports. 23 log('Launching Datastore emulator...'); 24 this.gcd = datastore.launch(); 25 await this.gcd.ready; 26 27 log('Launching appserver...'); 28 this.server = appserver.launch({ 29 project: this.gcd.config.project, 30 gcdPort: this.gcd.config.port, 31 }); 32 await this.server.ready; 33 34 log('Adding static data...'); 35 await devData.populate(this.server); 36 }); 37 38 setup(async function() { 39 this.browser = await puppeteer.launch({ 40 headless: process.env.HEADLESS !== 'false', 41 }); 42 }); 43 44 require('./path-test').tests(this.ctx); 45 46 teardown(async function () { 47 await this.browser.close(); 48 }); 49 50 suiteTeardown(async function() { 51 log('closing appserver...'); 52 await this.server.close(); 53 log('closing Datastore emulator...'); 54 await this.gcd.close(); 55 log('Bye!'); 56 }); 57 });