# kubectl create namespace edit-test
# kubectl create service clusterip svc1 --tcp 80 --namespace=edit-test --save-config
# kubectl edit service svc1 --namespace=edit-test --save-config=true --output-patch=true
description: edit with flag --output-patch=true should output the patch
mode: edit
args:
- service
- svc1
saveConfig: "true"
outputPatch: "true"
namespace: edit-test
expectedStdout:
- 'Patch: {"metadata":{"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"creationTimestamp\":\"2017-02-27T19:40:53Z\",\"labels\":{\"app\":\"svc1\",\"new-label\":\"new-value\"},\"name\":\"svc1\",\"namespace\":\"edit-test\",\"resourceVersion\":\"670\",\"selfLink\":\"/api/v1/namespaces/edit-test/services/svc1\",\"uid\":\"a6c11186-fd24-11e6-b53c-480fcf4a5275\"},\"spec\":{\"clusterIP\":\"10.0.0.204\",\"ports\":[{\"name\":\"80\",\"port\":80,\"protocol\":\"TCP\",\"targetPort\":80}],\"selector\":{\"app\":\"svc1\"},\"sessionAffinity\":\"None\",\"type\":\"ClusterIP\"},\"status\":{\"loadBalancer\":{}}}\n"},"labels":{"new-label":"new-value"}}}'
- service/svc1 edited
expectedExitCode: 0
steps:
- type: request
  expectedMethod: GET
  expectedPath: /api/v1/namespaces/edit-test/services/svc1
  expectedInput: 0.request
  resultingStatusCode: 200
  resultingOutput: 0.response
- type: edit
  expectedInput: 1.original
  resultingOutput: 1.edited
- type: request
  expectedMethod: PATCH
  expectedPath: /api/v1/namespaces/edit-test/services/svc1
  expectedContentType: application/strategic-merge-patch+json
  expectedInput: 2.request
  resultingStatusCode: 200
  resultingOutput: 2.response
