mirror of
https://github.com/docker/build-push-action.git
synced 2025-03-30 19:50:07 +02:00
186 lines
3.8 KiB
TypeScript
186 lines
3.8 KiB
TypeScript
import {ImageReference} from '../src/image-reference';
|
|
|
|
describe('fromString', () => {
|
|
// prettier-ignore
|
|
test.each([
|
|
[
|
|
'foo_com',
|
|
{
|
|
path: 'foo_com'
|
|
},
|
|
false
|
|
],
|
|
[
|
|
'foo.com:tag',
|
|
{
|
|
path: 'foo.com',
|
|
tag: 'tag'
|
|
},
|
|
false
|
|
],
|
|
[
|
|
'foo.com:5000',
|
|
{
|
|
path: 'foo.com',
|
|
tag: '5000'
|
|
},
|
|
false
|
|
],
|
|
[
|
|
'foo.com/repo:tag',
|
|
{
|
|
domain: 'foo.com',
|
|
path: 'repo',
|
|
tag: 'tag'
|
|
},
|
|
false
|
|
],
|
|
[
|
|
'foo.com:5000/repo',
|
|
{
|
|
domain: 'foo.com:5000',
|
|
path: 'repo'
|
|
},
|
|
false
|
|
],
|
|
[
|
|
'foo.com:5000/repo:tag',
|
|
{
|
|
domain: 'foo.com:5000',
|
|
path: 'repo',
|
|
tag: 'tag'
|
|
},
|
|
false
|
|
],
|
|
[
|
|
'foo:5000/repo@sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
|
|
{
|
|
domain: 'foo:5000',
|
|
path: 'repo',
|
|
digest: 'sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
|
|
},
|
|
false
|
|
],
|
|
[
|
|
'foo:5000/repo:tag@sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
|
|
{
|
|
domain: 'foo:5000',
|
|
path: 'repo',
|
|
tag: 'tag',
|
|
digest: 'sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
|
|
},
|
|
false
|
|
],
|
|
[
|
|
'foo:5000/repo',
|
|
{
|
|
domain: 'foo:5000',
|
|
path: 'repo'
|
|
},
|
|
false
|
|
],
|
|
[
|
|
':justtag',
|
|
{},
|
|
true
|
|
],
|
|
[
|
|
'b.gcr.io/foo.example.com/my-app:foo.example.com',
|
|
{
|
|
domain: 'b.gcr.io',
|
|
path: 'foo.example.com/my-app',
|
|
tag: 'foo.example.com',
|
|
},
|
|
false
|
|
],
|
|
[
|
|
'docker.io/library/ubuntu:18.04@sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
|
|
{
|
|
domain: 'docker.io',
|
|
path: 'library/ubuntu',
|
|
tag: '18.04',
|
|
digest: 'sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'
|
|
},
|
|
false
|
|
],
|
|
[
|
|
'ghactionstest/ghactionstest',
|
|
{
|
|
domain: 'ghactionstest',
|
|
path: 'ghactionstest'
|
|
},
|
|
false
|
|
],
|
|
[
|
|
'ghcr.io/docker-ghactiontest/test',
|
|
{
|
|
domain: 'ghcr.io',
|
|
path: 'docker-ghactiontest/test'
|
|
},
|
|
false
|
|
],
|
|
[
|
|
'registry.gitlab.com/test1716/test',
|
|
{
|
|
domain: 'registry.gitlab.com',
|
|
path: 'test1716/test'
|
|
},
|
|
false
|
|
],
|
|
[
|
|
'175142243308.dkr.ecr.us-east-2.amazonaws.com/sandbox/test-docker-action',
|
|
{
|
|
domain: '175142243308.dkr.ecr.us-east-2.amazonaws.com',
|
|
path: 'sandbox/test-docker-action'
|
|
},
|
|
false
|
|
],
|
|
[
|
|
'public.ecr.aws/q3b5f1u4/test-docker-action',
|
|
{
|
|
domain: 'public.ecr.aws',
|
|
path: 'q3b5f1u4/test-docker-action'
|
|
},
|
|
false
|
|
],
|
|
[
|
|
'us-east4-docker.pkg.dev/sandbox-298914/docker-official-github-actions/test-docker-action',
|
|
{
|
|
domain: 'us-east4-docker.pkg.dev',
|
|
path: 'sandbox-298914/docker-official-github-actions/test-docker-action'
|
|
},
|
|
false
|
|
],
|
|
[
|
|
'gcr.io/sandbox-298914/test-docker-action',
|
|
{
|
|
domain: 'gcr.io',
|
|
path: 'sandbox-298914/test-docker-action'
|
|
},
|
|
false
|
|
],
|
|
[
|
|
'ghcr.io/KTH-Library/kontarion:latest',
|
|
{
|
|
domain: 'ghcr.io',
|
|
path: 'kth-library/kontarion',
|
|
tag: 'latest'
|
|
},
|
|
false
|
|
],
|
|
])(
|
|
'given %p',
|
|
async (input, expected, invalid) => {
|
|
try {
|
|
const ir = ImageReference.fromString(input);
|
|
console.log(ir);
|
|
expect(ir).toEqual(expected);
|
|
} catch (err) {
|
|
if (!invalid) {
|
|
console.error(err);
|
|
}
|
|
expect(true).toBe(invalid);
|
|
}
|
|
}
|
|
);
|
|
});
|