mirror of
https://github.com/erlef/setup-beam.git
synced 2026-07-23 15:16:08 +00:00
159 lines
3.6 KiB
JavaScript
159 lines
3.6 KiB
JavaScript
simulateInput('otp-version', '23.2')
|
|
simulateInput('elixir-version', '1.11')
|
|
simulateInput('rebar3-version', '3.14')
|
|
simulateInput('install-rebar', 'true')
|
|
simulateInput('install-hex', 'true')
|
|
|
|
const assert = require('assert')
|
|
const setupElixir = require('../src/setup-beam')
|
|
const installer = require('../src/installer')
|
|
|
|
async function all() {
|
|
await testFailInstallOTP()
|
|
await testFailInstallElixir()
|
|
await testFailInstallRebar3()
|
|
|
|
await testOTPVersions()
|
|
await testElixirVersions()
|
|
await testRebar3Versions()
|
|
}
|
|
|
|
async function testFailInstallOTP() {
|
|
const otpOSVersion = 'ubuntu-08.04'
|
|
const otpVersion = 'OTP-23.2'
|
|
assert.rejects(
|
|
async () => {
|
|
await installer.installOTP(otpOSVersion, otpVersion)
|
|
},
|
|
(err) => {
|
|
assert.ok(err instanceof Error)
|
|
return true
|
|
},
|
|
`Installing Erlang/OTP ${otpVersion} over ${otpOSVersion} is supposed to fail`,
|
|
)
|
|
}
|
|
|
|
async function testFailInstallElixir() {
|
|
let exVersion
|
|
|
|
exVersion = '0.11'
|
|
assert.rejects(
|
|
async () => {
|
|
await installer.installElixir(exVersion)
|
|
},
|
|
(err) => {
|
|
assert.ok(err instanceof Error)
|
|
return true
|
|
},
|
|
`Installing Elixir ${exVersion} is supposed to fail`,
|
|
)
|
|
|
|
exVersion = 'v1.0.0-otp-17'
|
|
assert.rejects(
|
|
async () => {
|
|
await installer.installElixir(exVersion)
|
|
},
|
|
(err) => {
|
|
assert.ok(err instanceof Error)
|
|
return true
|
|
},
|
|
`Installing Elixir ${exVersion} is supposed to fail`,
|
|
)
|
|
}
|
|
|
|
async function testFailInstallRebar3() {
|
|
const r3Version = '0.14.4'
|
|
assert.rejects(
|
|
async () => {
|
|
await installer.installRebar3(r3Version)
|
|
},
|
|
(err) => {
|
|
assert.ok(err instanceof Error)
|
|
return true
|
|
},
|
|
`Installing rebar3 ${r3Version} is supposed to fail`,
|
|
)
|
|
}
|
|
|
|
async function testOTPVersions() {
|
|
let got
|
|
let expected
|
|
let spec
|
|
let osVersion
|
|
|
|
spec = '19.3.x'
|
|
osVersion = 'ubuntu-16.04'
|
|
expected = 'OTP-19.3.6'
|
|
got = await setupElixir.getOTPVersion(spec, osVersion)
|
|
assert.deepStrictEqual(got, expected)
|
|
|
|
spec = '^19.3.6'
|
|
osVersion = 'ubuntu-16.04'
|
|
expected = 'OTP-19.3.6'
|
|
got = await setupElixir.getOTPVersion(spec, osVersion)
|
|
assert.deepStrictEqual(got, expected)
|
|
|
|
spec = '^19.3'
|
|
osVersion = 'ubuntu-18.04'
|
|
expected = 'OTP-19.3.6'
|
|
got = await setupElixir.getOTPVersion(spec, osVersion)
|
|
assert.deepStrictEqual(got, expected)
|
|
}
|
|
|
|
async function testElixirVersions() {
|
|
let got
|
|
let expected
|
|
let spec
|
|
let otpVersion
|
|
|
|
spec = '1.1.x'
|
|
otpVersion = 'OTP-23'
|
|
expected = 'v1.1.1'
|
|
got = await setupElixir.getElixirVersion(spec, otpVersion)
|
|
assert.deepStrictEqual(got, expected)
|
|
|
|
spec = '1.10.4'
|
|
otpVersion = 'OTP-23'
|
|
expected = 'v1.10.4-otp-23'
|
|
got = await setupElixir.getElixirVersion(spec, otpVersion)
|
|
assert.deepStrictEqual(got, expected)
|
|
|
|
spec = '1.11.0-rc.0'
|
|
otpVersion = 'OTP-23'
|
|
expected = 'v1.11.0-rc.0-otp-23'
|
|
got = await setupElixir.getElixirVersion(spec, otpVersion)
|
|
assert.deepStrictEqual(got, expected)
|
|
}
|
|
|
|
async function testRebar3Versions() {
|
|
let got
|
|
let expected
|
|
let spec
|
|
|
|
spec = '3.13.x'
|
|
expected = '3.13.2'
|
|
got = await setupElixir.getRebar3Version(spec)
|
|
assert.deepStrictEqual(got, expected)
|
|
|
|
spec = '3.13.2'
|
|
expected = '3.13.2'
|
|
got = await setupElixir.getRebar3Version(spec)
|
|
assert.deepStrictEqual(got, expected)
|
|
|
|
spec = '3.13'
|
|
expected = '3.13.2'
|
|
got = await setupElixir.getRebar3Version(spec)
|
|
assert.deepStrictEqual(got, expected)
|
|
}
|
|
|
|
function simulateInput(key, value) {
|
|
process.env[`INPUT_${key.replace(/ /g, '_').toUpperCase()}`] = value
|
|
}
|
|
|
|
all()
|
|
.then(() => process.exit(0))
|
|
.catch((err) => {
|
|
console.error(err)
|
|
process.exit(1)
|
|
})
|