Home | History | Annotate | Download | only in config
      1 // Copyright (C) 2018 The Android Open Source Project
      2 //
      3 // Licensed under the Apache License, Version 2.0 (the "License");
      4 // you may not use this file except in compliance with the License.
      5 // You may obtain a copy of the License at
      6 //
      7 //      http://www.apache.org/licenses/LICENSE-2.0
      8 //
      9 // Unless required by applicable law or agreed to in writing, software
     10 // distributed under the License is distributed on an "AS IS" BASIS,
     11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 // See the License for the specific language governing permissions and
     13 // limitations under the License.
     14 
     15 const fs = require('fs');
     16 const path = require('path');
     17 const NodeEnvironment = require('jest-environment-node');
     18 const puppeteer = require('puppeteer');
     19 
     20 module.exports = class HeadlessEnvironment extends NodeEnvironment {
     21   constructor(config) {
     22     super(config);
     23   }
     24 
     25   async setup() {
     26     await super.setup();
     27     this.global.__BROWSER__ = await puppeteer.launch();
     28   }
     29 
     30   async teardown() {
     31     await this.global.__BROWSER__.close();
     32     await super.teardown();
     33   }
     34 
     35   runScript(script) {
     36     return super.runScript(script);
     37   }
     38 }
     39