(GH-608) Add getConventions and refactor

This commit introduces the getConventions function, which does a one-time calculation
for the changes in packaging conventions to propagate to the getArch and getOS
functions.

It updates those functions and the installer code to leverage the conventions.

Finally, it updates the test arrangement for getArch and getOS to use test cases
instead of repeating the same test over and over and adds unit tests for the new
getConventions function.
This commit is contained in:
Michael T Lombardi 2022-10-13 23:13:33 -05:00
parent c7d0025d39
commit b7e8a5bdba
No known key found for this signature in database
GPG key ID: 7C6D390F1A9EF1AB
7 changed files with 306 additions and 99 deletions

View file

@ -0,0 +1,57 @@
import getConventions from "../src/get-conventions";
describe('getConventions()', () => {
const groups = [
{
condition: 'when hugo version < 0.102.0',
version: '0.101.0',
expected: {
arch: {
darwinUniversal: false,
dropped32BitSupport: false,
standardizedNaming: false,
},
os: {
renamedMacOS: false,
downcasedAll: false
}
}
},
{
condition: 'when hugo version === 0.102.z',
version: '0.102.0',
expected: {
arch: {
darwinUniversal: true,
dropped32BitSupport: true,
standardizedNaming: false,
},
os: {
renamedMacOS: true,
downcasedAll: false
}
}
},
{
condition: 'when hugo version >= 0.103.0',
version: '0.103.0',
expected: {
arch: {
darwinUniversal: true,
dropped32BitSupport: true,
standardizedNaming: true,
},
os: {
renamedMacOS: true,
downcasedAll: true
}
}
}
].map(function (group) {
return Object.assign(group, { toString: function () { return group.condition } });
});
test.each(groups)('%s', ({ expected, version }) => {
expect(getConventions(version)).toEqual(expected);
});
});