k3s/pkg/kubectl/cmd/testdata/edit
Clayton Coleman 5038eb2a3f
Remove use of VersionedObject and simplify builder in generic methods
Reduce all uses of Unstructured to the simpler form, and avoid asking
for mapper or typer unless it is required. Use Typed() for places that
previously used VersionedObject, and remove paths for versioned objects
from code that is now using unstructured.
2017-11-19 19:16:49 -05:00
..
testcase-apply-edit-last-applied update related files 2017-07-25 12:56:50 +08:00
testcase-apply-edit-last-applied-list kubectl apply edit-last-applied should fail when version is missing 2017-11-16 18:02:41 -05:00
testcase-apply-edit-last-applied-list-fail Remove use of VersionedObject and simplify builder in generic methods 2017-11-19 19:16:49 -05:00
testcase-apply-edit-last-applied-syntax-error update related files 2017-07-25 12:56:50 +08:00
testcase-create-list
testcase-create-list-error
testcase-edit-error-reedit
testcase-edit-from-empty forbid kubectl edit an empty list 2017-08-11 08:44:13 +08:00
testcase-edit-output-patch allow output patch string in edit command 2017-06-01 14:53:17 +08:00
testcase-immutable-name
testcase-list
testcase-list-errors
testcase-list-record
testcase-missing-service
testcase-no-op
testcase-not-update-annotation
testcase-repeat-error
testcase-schemaless-list
testcase-single-service
testcase-syntax-error
testcase-unknown-field-known-group-kind
testcase-unknown-version-known-group-kind
testcase-update-annotation
BUILD update BUILD files 2017-10-15 18:18:13 -07:00
README
record.go
record_editor.sh
record_testcase.sh
test_editor.sh

README

This folder contains test cases for interactive edit, and helpers for recording new test cases

To record a new test:

1. Start a local cluster running unsecured on http://localhost:8080 (e.g. hack/local-up-cluster.sh)
2. Set up any pre-existing resources you want to be available on that server (namespaces, resources to edit, etc)
3. Run ./pkg/kubectl/cmd/testdata/edit/record_testcase.sh my-testcase
4. Run the desired `kubectl edit ...` command, and interact with the editor as desired until it completes.
  * You can do things that cause errors to appear in the editor (change immutable fields, fail validation, etc)
  * You can perform edit flows that invoke the editor multiple times
  * You can make out-of-band changes to the server resources that cause conflict errors to be returned
  * The API requests/responses and editor inputs/outputs are captured in your testcase folder
5. Type exit.
6. Inspect the captured requests/responses and inputs/outputs for sanity
7. Modify the generated test.yaml file:
  * Set a description of what the test is doing
  * Enter the args (if any) you invoked edit with
  * Enter the filename (if any) you invoked edit with
  * Enter the output format (if any) you invoked edit with
  * Optionally specify substrings to look for in the stdout or stderr of the edit command
8. Add your new testcase name to the list of testcases in edit_test.go
9. Run `go test ./pkg/kubectl/cmd -run TestEdit -v` to run edit tests