import { validateConfiguration } from "app-builder-lib/out/util/config/config"
import { Arch, DebugLogger } from "builder-util"
import { Configuration, Platform } from "electron-builder"
import { CliOptions, configureBuildCommand, createYargs, normalizeOptions } from "electron-builder/out/builder"
import { app, appThrows, linuxDirTarget } from "./helpers/packTester"
test.ifDevOrLinuxCi("validation", ({ expect }) =>
appThrows(
expect,
{
targets: linuxDirTarget,
config: {
foo: 123,
mac: {
foo: 12123,
},
} as any,
},
undefined,
error => error.message.includes("configuration has an unknown property 'foo'")
)
)
test.ifDevOrLinuxCi("appId as object", ({ expect }) =>
appThrows(expect, {
targets: linuxDirTarget,
config: {
appId: {},
} as any,
})
)
test.ifDevOrLinuxCi("extraFiles", ({ expect }) =>
app(expect, {
targets: Platform.LINUX.createTarget("appimage", Arch.x64),
config: {
linux: {
target: "zip:ia32",
},
extraFiles: [
"lib/*.jar",
"lib/Proguard/**/*",
{
from: "lib/",
to: ".",
filter: ["*.dll"],
},
{
from: "lib/",
to: ".",
filter: ["*.exe"],
},
"BLClient/BLClient.json",
{
from: "include/",
to: ".",
},
],
},
})
)
test.ifDevOrLinuxCi("files", ({ expect }) => {
return validateConfiguration(
{
appId: "com.example.myapp",
files: [{ from: "dist/app", to: "app", filter: "*.js" }],
win: {
target: "NSIS",
icon: "build/icon.ico",
},
},
new DebugLogger()
)
})
test.ifDevOrLinuxCi("null string as null", async ({ expect }) => {
const yargs = configureBuildCommand(createYargs())
const options = normalizeOptions(yargs.parse(["-c.mac.identity=null", "--config.mac.hardenedRuntime=false"]) as CliOptions)
const config = options.config as Configuration
await validateConfiguration(config, new DebugLogger())
expect(config.mac!.identity).toBeNull()
expect(config.mac!.hardenedRuntime).toBe(false)
})