From b2e6a7d00444f5885109bc093bac68bcc268af19 Mon Sep 17 00:00:00 2001 From: James Dubee Date: Wed, 21 Jun 2017 09:36:30 -0400 Subject: [PATCH] Add Test to Ensure Preservation of Annotations for Action Web Flag (#2366) * Preserve Annotations for Action Web Flag --- .../core/cli/test/WskBasicUsageTests.scala | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/src/test/scala/whisk/core/cli/test/WskBasicUsageTests.scala b/tests/src/test/scala/whisk/core/cli/test/WskBasicUsageTests.scala index ad21d58d720..ec526b41a39 100644 --- a/tests/src/test/scala/whisk/core/cli/test/WskBasicUsageTests.scala +++ b/tests/src/test/scala/whisk/core/cli/test/WskBasicUsageTests.scala @@ -631,6 +631,40 @@ class WskBasicUsageTests } } + it should "ensure --web flag does not remove existing annotations" in withAssetCleaner(wskprops) { + (wp, assetHelper) => + val name = "webaction" + val file = Some(TestUtils.getTestActionFilename("echo.js")) + val key = "someKey" + val value = JsString("someValue") + val annots = Map(key -> value) + + assetHelper.withCleaner(wsk.action, name) { + (action, _) => action.create(name, file, annotations = annots) + } + + wsk.action.create(name, file, web = Some("true"), update = true) + + val stdout = wsk.action.get(name, fieldFilter = Some("annotations")).stdout + assert(stdout.startsWith(s"ok: got action $name, displaying field annotations\n")) + removeCLIHeader(stdout).parseJson shouldBe JsArray( + JsObject( + "key" -> JsString("web-export"), + "value" -> JsBoolean(true)), + JsObject( + "key" -> JsString("raw-http"), + "value" -> JsBoolean(false)), + JsObject( + "key" -> JsString("final"), + "value" -> JsBoolean(true)), + JsObject( + "key" -> JsString(key), + "value" -> value), + JsObject( + "key" -> JsString("exec"), + "value" -> JsString("nodejs:6"))) + } + it should "reject action create and update with invalid web flag input" in withAssetCleaner(wskprops) { (wp, assetHelper) => val name = "webaction"