import { createTargets, DIR_TARGET, Platform } from "electron-builder"import * as fs from "fs/promises"import * as path from "path"import { appTwoThrows, assertPack, modifyPackageJson } from "./helpers/packTester"const packagerOptions = {targets: createTargets([Platform.LINUX, Platform.MAC], DIR_TARGET),}test.ifLinuxOrDevMac("invalid main in the app package.json", ({ expect }) =>appTwoThrows(expect, packagerOptions, {projectDirCreated: projectDir =>modifyPackageJson(projectDir,data => {data.main = "main.js"},true),}))test.ifLinuxOrDevMac("invalid main in the app package.json (no asar)", ({ expect }) =>appTwoThrows(expect, packagerOptions, {projectDirCreated: projectDir => {return Promise.all([modifyPackageJson(projectDir,data => {data.main = "main.js"},true),modifyPackageJson(projectDir, data => {data.build.asar = false}),])},}))test.ifLinuxOrDevMac("invalid main in the app package.json (custom asar)", ({ expect }) =>appTwoThrows(expect, packagerOptions, {projectDirCreated: projectDir => {return Promise.all([modifyPackageJson(projectDir,data => {data.main = "path/app.asar/main.js"},true),modifyPackageJson(projectDir, data => {data.build.asar = false}),])},}))test.ifLinuxOrDevMac("main in the app package.json (no asar)", ({ expect }) =>assertPack(expect, "test-app", packagerOptions, {projectDirCreated: projectDir => {return Promise.all([fs.rename(path.join(projectDir, "app", "index.js"), path.join(projectDir, "app", "main.js")),modifyPackageJson(projectDir,data => {data.main = "main.js"},true),modifyPackageJson(projectDir, data => {data.build.asar = false}),])},}))test.ifLinuxOrDevMac("main in the app package.json (custom asar)", ({ expect }) =>assertPack(expect, "test-app", packagerOptions, {projectDirCreated: projectDir => {return Promise.all([modifyPackageJson(projectDir,data => {data.main = "path/app.asar/index.js"},true),modifyPackageJson(projectDir, data => {data.build.asar = false}),])},}))