Skip to content

Commit

Permalink
Add namespace command test
Browse files Browse the repository at this point in the history
Signed-off-by: Kristoffer Dalby <[email protected]>
  • Loading branch information
kradalby committed Oct 26, 2022
1 parent 2c0488d commit cb61a49
Showing 1 changed file with 93 additions and 0 deletions.
93 changes: 93 additions & 0 deletions integration/cli_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
package integration

import (
"encoding/json"
"testing"

v1 "github.com/juanfont/headscale/gen/go/headscale/v1"
"github.com/stretchr/testify/assert"
)

func executeAndUnmarshal[T any](headscale ControlServer, command []string, result T) error {
str, err := headscale.Execute(command)
if err != nil {
return err
}

err = json.Unmarshal([]byte(str), result)
if err != nil {
return err
}

return nil
}

func TestNamespaceCommand(t *testing.T) {
IntegrationSkip(t)
t.Parallel()

scenario, err := NewScenario()
assert.NoError(t, err)

spec := map[string]int{
"namespace1": 0,
"namespace2": 0,
}

err = scenario.CreateHeadscaleEnv(spec)
assert.NoError(t, err)

var listNamespaces []v1.Namespace
err = executeAndUnmarshal(scenario.Headscale(),
[]string{
"headscale",
"namespaces",
"list",
"--output",
"json",
},
&listNamespaces,
)
assert.NoError(t, err)

assert.Equal(
t,
[]string{"namespace1", "namespace2"},
[]string{listNamespaces[0].Name, listNamespaces[1].Name},
)

_, err = scenario.Headscale().Execute(
[]string{
"headscale",
"namespaces",
"rename",
"--output",
"json",
"namespace2",
"newname",
},
)
assert.NoError(t, err)

var listAfterRenameNamespaces []v1.Namespace
err = executeAndUnmarshal(scenario.Headscale(),
[]string{
"headscale",
"namespaces",
"list",
"--output",
"json",
},
&listAfterRenameNamespaces,
)
assert.NoError(t, err)

assert.Equal(
t,
[]string{"namespace1", "newname"},
[]string{listAfterRenameNamespaces[0].Name, listAfterRenameNamespaces[1].Name},
)

err = scenario.Shutdown()
assert.NoError(t, err)
}

0 comments on commit cb61a49

Please sign in to comment.