"use strict";var t=require("./index.js");function e(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}const n=new(e(t).default);let r,o=!1;try{r=require("jest-environment-node")}catch(t){r=require(require.resolve("jest-environment-node",{paths:[process.cwd()]}))}r&&r.TestEnvironment&&(o=!0,r=r.TestEnvironment);module.exports=class extends r{constructor(t,e){super(o?{projectConfig:t}:t),process.env.UNI_AUTOMATOR_CONFIG?this.launchOptions=require(process.env.UNI_AUTOMATOR_CONFIG):this.launchOptions=t.testEnvironmentOptions}async setup(){await super.setup();const e=global;if(e.__init__){if(!e.program)throw Error("Program init failed")}else e.__init__=!0,this.launchOptions.platform=this.launchOptions.platform||process.env.UNI_PLATFORM,e.program=await n.launch(this.launchOptions),this.launchOptions.devtools&&this.launchOptions.devtools.remote&&await e.program.remote(!0);this.global.program=e.program,this.global.uni=t.initUni(e.program)}async teardown(){await super.teardown()}};
