32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
import { describe, it, expect } from 'vitest'
|
|
import chalk from 'chalk'
|
|
|
|
import { padRight } from '../src/util.js'
|
|
import { getTarget } from '../src/target.js'
|
|
|
|
const b = chalk.blue,
|
|
arch = process.arch === 'ia32' ? 'x86' : process.arch
|
|
|
|
describe('Targets', () => {
|
|
;[
|
|
['win-ia32-6.11.2', 'windows-x86-6.11.2'],
|
|
[{ version: '6.11.2', platform: 'win', arch: 'ia32' }, 'windows-x86-6.11.2'],
|
|
['win32-x64-6.11.2', 'windows-x64-6.11.2'],
|
|
['win-amd64-6.11.2', 'windows-x64-6.11.2'],
|
|
['darwin-x64-v8.4.0', 'mac-x64-8.4.0'],
|
|
['macos-x64-v8.4.0', 'mac-x64-8.4.0'],
|
|
['static-x86-6.10.3', 'alpine-x86-6.10.3'],
|
|
['linux-x32', `linux-x86-${process.version.slice(1)}`],
|
|
['alpine-notsupported-6.10.3', `alpine-${arch}-6.10.3`],
|
|
['not-a-thing', getTarget(process).toString()],
|
|
].forEach(([input, expected]) => {
|
|
it(`should accept: ${padRight(JSON.stringify(input), 53)} ${b('->')} ${expected}`, () => {
|
|
expect(getTarget(input).toString()).to.equal(expected)
|
|
})
|
|
})
|
|
|
|
it('should stringify and toString', () => {
|
|
expect(JSON.stringify(getTarget(process))).to.equal(`"${getTarget(process)}"`)
|
|
})
|
|
})
|