1// Copyright 2023 The Gitea Authors. All rights reserved.2// SPDX-License-Identifier: MIT34package labels56import (7 "testing"89 "github.com/stretchr/testify/require"10 "gotest.tools/v3/assert"11)1213func TestParse(t *testing.T) {14 tests := []struct {15 args string16 want *Label17 wantErr bool18 }{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 return58 }59 require.NoError(t, err)60 assert.DeepEqual(t, got, tt.want)61 })62 }63}