61 lines
1.6 KiB
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")
|
|
}
|