k3s/pkg/kubectl/cmd/testdata/edit
Kubernetes Submit Queue b5f61ac129
Merge pull request #62657 from matthyx/master
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Update all script shebangs to use /usr/bin/env interpreter instead of /bin/interpreter

This is required to support systems where bash doesn't reside in /bin (such as NixOS, or the *BSD family) and allow users to specify a different interpreter version through $PATH manipulation.
https://www.cyberciti.biz/tips/finding-bash-perl-python-portably-using-env.html
```release-note
Use /usr/bin/env in all script shebangs to increase portability.
```
2018-05-02 19:44:32 -07:00
..
testcase-apply-edit-last-applied wire printflags through additional cmds 2018-04-25 16:07:32 -04:00
testcase-apply-edit-last-applied-list wire printflags through additional cmds 2018-04-25 16:07:32 -04:00
testcase-apply-edit-last-applied-list-fail wire printflags through additional cmds 2018-04-25 16:07:32 -04:00
testcase-apply-edit-last-applied-syntax-error wire printflags through additional cmds 2018-04-25 16:07:32 -04:00
testcase-create-list wire printflags through additional cmds 2018-04-25 16:07:32 -04:00
testcase-create-list-error wire printflags through additional cmds 2018-04-25 16:07:32 -04:00
testcase-edit-error-reedit wire printflags through additional cmds 2018-04-25 16:07:32 -04:00
testcase-edit-from-empty
testcase-edit-output-patch wire printflags through additional cmds 2018-04-25 16:07:32 -04:00
testcase-immutable-name
testcase-list wire printflags through additional cmds 2018-04-25 16:07:32 -04:00
testcase-list-errors wire printflags through additional cmds 2018-04-25 16:07:32 -04:00
testcase-list-record wire printflags through additional cmds 2018-04-25 16:07:32 -04:00
testcase-missing-service
testcase-no-op
testcase-not-update-annotation wire printflags through additional cmds 2018-04-25 16:07:32 -04:00
testcase-repeat-error
testcase-schemaless-list wire printflags through additional cmds 2018-04-25 16:07:32 -04:00
testcase-single-service wire printflags through additional cmds 2018-04-25 16:07:32 -04:00
testcase-syntax-error wire printflags through additional cmds 2018-04-25 16:07:32 -04:00
testcase-unknown-field-known-group-kind wire printflags through additional cmds 2018-04-25 16:07:32 -04:00
testcase-unknown-version-known-group-kind wire printflags through additional cmds 2018-04-25 16:07:32 -04:00
testcase-update-annotation wire printflags through additional cmds 2018-04-25 16:07:32 -04:00
BUILD Autogenerated: hack/update-bazel.sh 2018-02-16 13:43:01 -08:00
README
record.go
record_editor.sh Update all script to use /usr/bin/env bash in shebang 2018-04-19 13:20:13 +02:00
record_testcase.sh Update all script to use /usr/bin/env bash in shebang 2018-04-19 13:20:13 +02:00
test_editor.sh Update all script to use /usr/bin/env bash in shebang 2018-04-19 13:20:13 +02:00

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