mirror of
https://github.com/game-ci/unity-builder.git
synced 2025-07-04 12:25:19 -04:00

* Update workflows, bump image version for docker * Fix Unity pathing and cleanup scripts * Fix Unity pathing * Fix activation scripts
109 lines
3.4 KiB
TypeScript
109 lines
3.4 KiB
TypeScript
import ImageTag from './image-tag';
|
|
|
|
describe('ImageTag', () => {
|
|
const testImageParameters = {
|
|
editorVersion: '2099.9.f9f9',
|
|
targetPlatform: 'Test',
|
|
builderPlatform: '',
|
|
};
|
|
|
|
const defaults = {
|
|
repository: 'unityci',
|
|
name: 'editor',
|
|
image: 'unityci/editor',
|
|
};
|
|
|
|
describe('constructor', () => {
|
|
it('can be called', () => {
|
|
expect(() => new ImageTag(testImageParameters)).not.toThrow();
|
|
});
|
|
|
|
it('accepts parameters and sets the right properties', () => {
|
|
const image = new ImageTag(testImageParameters);
|
|
|
|
expect(image.repository).toStrictEqual('unityci');
|
|
expect(image.name).toStrictEqual('editor');
|
|
expect(image.editorVersion).toStrictEqual(testImageParameters.editorVersion);
|
|
expect(image.targetPlatform).toStrictEqual(testImageParameters.targetPlatform);
|
|
expect(image.builderPlatform).toStrictEqual(testImageParameters.builderPlatform);
|
|
});
|
|
|
|
test.each(['2000.0.0f0', '2011.1.11f1'])('accepts %p version format', (version) => {
|
|
expect(
|
|
() =>
|
|
new ImageTag({
|
|
editorVersion: version,
|
|
targetPlatform: testImageParameters.targetPlatform,
|
|
}),
|
|
).not.toThrow();
|
|
});
|
|
|
|
test.each(['some version', ''])('throws for incorrect version %p', (editorVersion) => {
|
|
const { targetPlatform } = testImageParameters;
|
|
expect(() => new ImageTag({ editorVersion, targetPlatform })).toThrow();
|
|
});
|
|
|
|
test.each(['nonExisting'])('throws for unsupported target %p', (targetPlatform) => {
|
|
expect(() => new ImageTag({ targetPlatform })).toThrow();
|
|
});
|
|
});
|
|
|
|
describe('toString', () => {
|
|
it('returns the correct version', () => {
|
|
const image = new ImageTag({
|
|
editorVersion: '2099.1.1111',
|
|
targetPlatform: testImageParameters.targetPlatform,
|
|
});
|
|
switch (process.platform) {
|
|
case 'win32':
|
|
expect(image.toString()).toStrictEqual(`${defaults.image}:windows-2099.1.1111-3`);
|
|
break;
|
|
case 'linux':
|
|
expect(image.toString()).toStrictEqual(`${defaults.image}:ubuntu-2099.1.1111-3`);
|
|
break;
|
|
}
|
|
});
|
|
it('returns customImage if given', () => {
|
|
const image = new ImageTag({
|
|
editorVersion: '2099.1.1111',
|
|
targetPlatform: testImageParameters.targetPlatform,
|
|
customImage: `${defaults.image}:2099.1.1111@347598437689743986`,
|
|
});
|
|
|
|
expect(image.toString()).toStrictEqual(image.customImage);
|
|
});
|
|
|
|
it('returns the specific build platform', () => {
|
|
const image = new ImageTag({
|
|
editorVersion: '2019.2.11f1',
|
|
targetPlatform: 'WebGL',
|
|
});
|
|
|
|
switch (process.platform) {
|
|
case 'win32':
|
|
expect(image.toString()).toStrictEqual(`${defaults.image}:windows-2019.2.11f1-webgl-3`);
|
|
break;
|
|
case 'linux':
|
|
expect(image.toString()).toStrictEqual(`${defaults.image}:ubuntu-2019.2.11f1-webgl-3`);
|
|
break;
|
|
}
|
|
});
|
|
|
|
it('returns no specific build platform for generic targetPlatforms', () => {
|
|
const image = new ImageTag({
|
|
editorVersion: '2019.2.11f1',
|
|
targetPlatform: 'NoTarget',
|
|
});
|
|
|
|
switch (process.platform) {
|
|
case 'win32':
|
|
expect(image.toString()).toStrictEqual(`${defaults.image}:windows-2019.2.11f1-3`);
|
|
break;
|
|
case 'linux':
|
|
expect(image.toString()).toStrictEqual(`${defaults.image}:ubuntu-2019.2.11f1-3`);
|
|
break;
|
|
}
|
|
});
|
|
});
|
|
});
|