🏡 index : quine-global-boneyard/electron-builder.git

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
        }),
      ])
    },
  })
)