Skip to content
Permalink
Browse files

test: Add more kubectx tests (#111)

  • Loading branch information...
feloy authored and ahmetb committed Dec 25, 2018
1 parent 845f3b6 commit acbf324464d3a7880ec46b781bf3e76ddd6c2e00
Showing with 140 additions and 0 deletions.
  1. +22 −0 test/common.bash
  2. +76 −0 test/kubectx.bats
  3. +18 −0 test/testdata/config1
  4. +24 −0 test/testdata/config2
@@ -0,0 +1,22 @@
#!/usr/bin/env bats

# bats setup function
setup() {
export XDG_CACHE_HOME="$(mktemp -d)"
export KUBECONFIG="${XDG_CACHE_HOME}/config"
}

# bats teardown function
teardown() {
rm -rf "$XDG_CACHE_HOME"
}

use_config() {
cp "$BATS_TEST_DIRNAME/testdata/$1" $KUBECONFIG
}

# wrappers around "kubectl config" command

get_context() {
kubectl config current-context
}
@@ -2,12 +2,88 @@

COMMAND="$BATS_TEST_DIRNAME/../kubectx"

load common

@test "--help should not fail" {
run ${COMMAND} --help
echo "$output"
[ "$status" -eq 0 ]
}

@test "-h should not fail" {
run ${COMMAND} -h
echo "$output"
[ "$status" -eq 0 ]
}

@test "switch to previous context when no one exists" {
use_config config1

run ${COMMAND} -
echo "$output"
[ "$status" -eq 1 ]
[[ "$output" = "error: No previous context found." ]]
}

@test "create one context and list contexts" {
use_config config1

run ${COMMAND}
echo "$output"
[ "$status" -eq 0 ]
[[ "$output" = "user1@cluster1" ]]
}

@test "create two contexts and list contexts" {
use_config config2

run ${COMMAND}
echo "$output"
[ "$status" -eq 0 ]
[[ "$output" = *"user1@cluster1"* ]]
[[ "$output" = *"user2@cluster1"* ]]
}

@test "create two contexts and select contexts" {
use_config config2

run ${COMMAND} user1@cluster1
echo "$output"
[ "$status" -eq 0 ]
echo "$(get_context)"
[[ "$(get_context)" = "user1@cluster1" ]]

run ${COMMAND} user2@cluster1
echo "$output"
[ "$status" -eq 0 ]
echo "$(get_context)"
[[ "$(get_context)" = "user2@cluster1" ]]
}

@test "create two contexts and switch between contexts" {
use_config config2

run ${COMMAND} user1@cluster1
echo "$output"
[ "$status" -eq 0 ]
echo "$(get_context)"
[[ "$(get_context)" = "user1@cluster1" ]]

run ${COMMAND} user2@cluster1
echo "$output"
[ "$status" -eq 0 ]
echo "$(get_context)"
[[ "$(get_context)" = "user2@cluster1" ]]

run ${COMMAND} -
echo "$output"
[ "$status" -eq 0 ]
echo "$(get_context)"
[[ "$(get_context)" = "user1@cluster1" ]]

run ${COMMAND} -
echo "$output"
[ "$status" -eq 0 ]
echo "$(get_context)"
[[ "$(get_context)" = "user2@cluster1" ]]
}
@@ -0,0 +1,18 @@
# config with one context

apiVersion: v1
clusters:
- cluster:
server: ""
name: cluster1
contexts:
- context:
cluster: cluster1
user: user1
name: user1@cluster1
current-context: ""
kind: Config
preferences: {}
users:
- name: user1
user: {}
@@ -0,0 +1,24 @@
# config with two contexts

apiVersion: v1
clusters:
- cluster:
server: ""
name: cluster1
contexts:
- context:
cluster: cluster1
user: user1
name: user1@cluster1
- context:
cluster: cluster1
user: user2
name: user2@cluster1
current-context: ""
kind: Config
preferences: {}
users:
- name: user1
user: {}
- name: user2
user: {}

0 comments on commit acbf324

Please sign in to comment.
You can’t perform that action at this time.