UNPKG

@typed/test

Version:
30 lines (26 loc) 1.2 kB
import { basename, join } from 'path' import * as tempy from 'tempy' import { Logger, TestMetadata } from '../types' import { createIndexHtml } from './createIndexHtml' import { generateTestBundle } from './generateTestBundle' import { bundleFileOrExit } from './webpack' import { Configuration } from 'webpack' export async function setupBrowser( cwd: string, port: number, timeout: number, logger: Logger, testMetadata: TestMetadata[], extendConfiguration: (config: Configuration) => Configuration, ) { const outputDirectory = tempy.directory() const temporaryPath = join(outputDirectory, basename(tempy.file({ extension: 'ts' }))) const bundlePath = join(outputDirectory, basename(tempy.file({ extension: 'js' }))) const browserApiFile = generateTestBundle(cwd, outputDirectory, port, timeout, testMetadata) const indexHtmlPath = join(outputDirectory, 'index.html') const { writeFileSync } = require('fs') writeFileSync(temporaryPath, browserApiFile) await bundleFileOrExit(cwd, temporaryPath, bundlePath, logger, extendConfiguration) writeFileSync(indexHtmlPath, createIndexHtml(basename(bundlePath))) return { outputDirectory, bundlePath, indexHtmlPath } }