forgejo-runner

git clone git://git.lin.moe/forgejo-runner.git

 1// Copyright 2023 The Gitea Authors. All rights reserved.
 2// SPDX-License-Identifier: MIT
 3
 4package labels
 5
 6import (
 7	"testing"
 8
 9	"github.com/stretchr/testify/require"
10	"gotest.tools/v3/assert"
11)
12
13func TestParse(t *testing.T) {
14	tests := []struct {
15		args    string
16		want    *Label
17		wantErr bool
18	}{
19		{
20			args: "ubuntu:docker://node:18",
21			want: &Label{
22				Name:   "ubuntu",
23				Schema: "docker",
24				Arg:    "//node:18",
25			},
26			wantErr: false,
27		},
28		{
29			args: "ubuntu:host",
30			want: &Label{
31				Name:   "ubuntu",
32				Schema: "host",
33				Arg:    "",
34			},
35			wantErr: false,
36		},
37		{
38			args: "ubuntu",
39			want: &Label{
40				Name:   "ubuntu",
41				Schema: "host",
42				Arg:    "",
43			},
44			wantErr: false,
45		},
46		{
47			args:    "ubuntu:vm:ubuntu-18.04",
48			want:    nil,
49			wantErr: true,
50		},
51	}
52	for _, tt := range tests {
53		t.Run(tt.args, func(t *testing.T) {
54			got, err := Parse(tt.args)
55			if tt.wantErr {
56				require.Error(t, err)
57				return
58			}
59			require.NoError(t, err)
60			assert.DeepEqual(t, got, tt.want)
61		})
62	}
63}