(GH-608) Fix package url for v0.102.0 & v0.103.0
Prior to this change, the URL building for versions of hugo was deterministic as the URLs for the packages were set to a project-specific standard. That URL creation began to fail for macOS in [0.102.0] and for Windows in [0.103.0]. It does not fail for Linux because the hugo releases for Linux continue to include the old package naming as an alias. This change: - Updates the `get-os` function to take the hugo version as additional input, altering the return value based on the version. - Updates the `get-arch` function to take the operating system name and hugo version as additional input, altering the return value based on both. Including the OS name is required for handling macOS. - Fixes #608 - Fixes #605 [0.102.0]: https://github.com/gohugoio/hugo/releases/tag/v0.102.0 [0.103.0]: https://github.com/gohugoio/hugo/releases/tag/v0.103.0
This commit is contained in:
parent
a2eba60698
commit
e70fd029fa
5 changed files with 101 additions and 19 deletions
|
|
@ -1,15 +1,63 @@
|
|||
import getArch from '../src/get-arch';
|
||||
|
||||
describe('getArch', () => {
|
||||
test('processor architecture', () => {
|
||||
expect(getArch('x64')).toBe('64bit');
|
||||
expect(getArch('arm')).toBe('ARM');
|
||||
expect(getArch('arm64')).toBe('ARM64');
|
||||
test('processor architecture < 0.102.0', () => {
|
||||
expect(getArch('x64', 'linux', '0.101.0')).toBe('64bit');
|
||||
expect(getArch('x64', 'macOS', '0.101.0')).toBe('64bit');
|
||||
expect(getArch('x64', 'windows', '0.101.0')).toBe('64bit');
|
||||
|
||||
expect(getArch('arm', 'linux', '0.101.0')).toBe('ARM');
|
||||
expect(getArch('arm', 'macOS', '0.101.0')).toBe('ARM');
|
||||
expect(getArch('arm', 'windows', '0.101.0')).toBe('ARM');
|
||||
|
||||
expect(getArch('arm64', 'linux', '0.101.0')).toBe('ARM64');
|
||||
expect(getArch('arm64', 'macOS', '0.101.0')).toBe('ARM64');
|
||||
expect(getArch('arm64', 'windows', '0.101.0')).toBe('ARM64');
|
||||
});
|
||||
|
||||
test('processor architecture === 0.102.z', () => {
|
||||
expect(getArch('x64', 'linux', '0.102.0')).toBe('64bit');
|
||||
expect(getArch('x64', 'macOS', '0.102.0')).toBe('universal');
|
||||
expect(getArch('x64', 'windows', '0.102.0')).toBe('64bit');
|
||||
|
||||
expect(getArch('arm', 'macOS', '0.102.0')).toBe('universal');
|
||||
|
||||
expect(getArch('arm64', 'linux', '0.102.0')).toBe('ARM64');
|
||||
expect(getArch('arm64', 'macOS', '0.102.0')).toBe('universal');
|
||||
expect(getArch('arm64', 'windows', '0.102.0')).toBe('ARM64');
|
||||
});
|
||||
|
||||
test('processor architecture === 0.103.z', () => {
|
||||
expect(getArch('x64', 'linux', '0.103.0')).toBe('amd64');
|
||||
expect(getArch('x64', 'darwin', '0.103.0')).toBe('universal');
|
||||
expect(getArch('x64', 'windows', '0.103.0')).toBe('amd64');
|
||||
|
||||
expect(getArch('arm', 'darwin', '0.103.0')).toBe('universal');
|
||||
|
||||
expect(getArch('arm64', 'linux', '0.103.0')).toBe('arm64');
|
||||
expect(getArch('arm64', 'darwin', '0.103.0')).toBe('universal');
|
||||
expect(getArch('arm64', 'windows', '0.103.0')).toBe('arm64');
|
||||
});
|
||||
|
||||
test('processor architecture > 0.103.0', () => {
|
||||
expect(getArch('x64', 'linux', '0.104.0')).toBe('amd64');
|
||||
expect(getArch('x64', 'darwin', '0.104.0')).toBe('universal');
|
||||
expect(getArch('x64', 'windows', '0.104.0')).toBe('amd64');
|
||||
|
||||
expect(getArch('arm', 'darwin', '0.104.0')).toBe('universal');
|
||||
|
||||
expect(getArch('arm64', 'linux', '0.104.0')).toBe('arm64');
|
||||
expect(getArch('arm64', 'darwin', '0.104.0')).toBe('universal');
|
||||
expect(getArch('arm64', 'windows', '0.104.0')).toBe('arm64');
|
||||
});
|
||||
|
||||
test('exception', () => {
|
||||
expect(() => {
|
||||
getArch('mips');
|
||||
getArch('mips', 'linux', '0.101.0');
|
||||
}).toThrowError('mips is not supported');
|
||||
|
||||
expect(() => {
|
||||
getArch('arm', 'linux', '0.102.0')
|
||||
}).toThrowError('arm is not supported');
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -2,14 +2,26 @@ import getOS from '../src/get-os';
|
|||
|
||||
describe('getOS', () => {
|
||||
test('os type', () => {
|
||||
expect(getOS('linux')).toBe('Linux');
|
||||
expect(getOS('darwin')).toBe('macOS');
|
||||
expect(getOS('win32')).toBe('Windows');
|
||||
expect(getOS('linux', '0.101.0')).toBe('Linux');
|
||||
expect(getOS('darwin', '0.101.0')).toBe('macOS');
|
||||
expect(getOS('win32', '0.101.0')).toBe('Windows');
|
||||
|
||||
expect(getOS('linux', '0.102.0')).toBe('Linux');
|
||||
expect(getOS('darwin', '0.102.0')).toBe('darwin');
|
||||
expect(getOS('win32', '0.102.0')).toBe('Windows');
|
||||
|
||||
expect(getOS('linux', '0.103.0')).toBe('linux');
|
||||
expect(getOS('darwin', '0.103.0')).toBe('darwin');
|
||||
expect(getOS('win32', '0.103.0')).toBe('windows');
|
||||
|
||||
expect(getOS('linux', '0.104.0')).toBe('linux');
|
||||
expect(getOS('darwin', '0.104.0')).toBe('darwin');
|
||||
expect(getOS('win32', '0.104.0')).toBe('windows');
|
||||
});
|
||||
|
||||
test('exception', () => {
|
||||
expect(() => {
|
||||
getOS('centos');
|
||||
getOS('centos', '0.101.0');
|
||||
}).toThrowError('centos is not supported');
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue