buildkit/util/apicaps/caps_test.go

61 lines
1.6 KiB
Go

package apicaps
import (
"testing"
pb "github.com/moby/buildkit/util/apicaps/pb"
"github.com/stretchr/testify/assert"
)
func TestDisabledCap(t *testing.T) {
var cl CapList
cl.Init(Cap{
ID: "cap1",
Name: "a test cap",
Enabled: true,
Status: CapStatusExperimental,
})
cl.Init(Cap{
ID: "cap2",
Name: "a second test cap",
Enabled: false,
Status: CapStatusExperimental,
})
cs := cl.CapSet([]pb.APICap{
{ID: "cap1", Enabled: true},
{ID: "cap2", Enabled: true},
})
err := cs.Supports("cap1")
assert.NoError(t, err)
err = cs.Supports("cap2")
assert.NoError(t, err)
cs = cl.CapSet([]pb.APICap{
{ID: "cap1", Enabled: true},
{ID: "cap2", Enabled: false},
})
err = cs.Supports("cap1")
assert.NoError(t, err)
err = cs.Supports("cap2")
assert.EqualError(t, err, "requested experimental feature cap2 (a second test cap) has been disabled on the build server")
cs = cl.CapSet([]pb.APICap{
{ID: "cap1", Enabled: false},
{ID: "cap2", Enabled: true},
})
err = cs.Supports("cap1")
assert.EqualError(t, err, "requested experimental feature cap1 (a test cap) has been disabled on the build server")
err = cs.Supports("cap2")
assert.NoError(t, err)
cs = cl.CapSet([]pb.APICap{
{ID: "cap1", Enabled: false},
{ID: "cap2", Enabled: false},
})
err = cs.Supports("cap1")
assert.EqualError(t, err, "requested experimental feature cap1 (a test cap) has been disabled on the build server")
err = cs.Supports("cap2")
assert.EqualError(t, err, "requested experimental feature cap2 (a second test cap) has been disabled on the build server")
}