Add scancode (#9)
* Add scancode.sh
* Run scancode before running ci tests
* Add .gitignore
* Update files according to the scancode.sh
diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml
index a38f698..1b6d4b4 100644
--- a/.github/workflows/node.js.yml
+++ b/.github/workflows/node.js.yml
@@ -40,5 +40,8 @@
node-version: ${{ matrix.node-version }}
- run: sudo apt-get install xvfb
- run: npm ci
+ - name: Run scancode
+ run: |
+ ./travis/scancode.sh
- run: xvfb-run --auto-servernum npm test
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a7ebae8
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,27 @@
+# Eclipse
+bin/
+**/.project
+.settings/
+.classpath
+.cache-main
+.cache-tests
+
+# Linux
+*~
+*.swp
+
+# Mac
+.DS_Store
+
+# NodeJS
+node_modules
+
+# IntelliJ
+.idea
+*.class
+*.iml
+out/
+
+# VSCode
+.vscode/
+
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c539b15..b105d6f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,22 @@
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
+
# Change Log
All notable changes to the "openwhisk-vscode-extension" extension will be documented in this file.
@@ -6,4 +25,4 @@
## [Unreleased]
-- Initial release
\ No newline at end of file
+- Initial release
diff --git a/README.md b/README.md
index a3c4836..e71894e 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,22 @@
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
+
# OpenWhisk VSCode Extension
An **openwhisk-vscode-extension** is an open-source VSCode extension for [Apache OpenWhisk](https://openwhisk.apache.org/). It manages the wskdeploy manifest file and makes deployment easy. You can also create and update actions and packages in VSCode.
@@ -49,7 +68,7 @@
code ./openwhisk-vscode-extension # Open openwhisk-vscode-extension in VSCode
```
-Press `F5` button(run debug)
+Press `F5` button(run debug)
Learn more about debugging [here](https://github.com/apache/openwhisk-vscode-extension/blob/master/vsc-extension-quickstart.md)
@@ -72,11 +91,11 @@
limitations under the License.
```
-## Third-party Product Acknowledgement
+## Third-party Product Acknowledgement
Portions of this product include SVG files developed by the XEIcon project (https://github.com/xpressengine/XEIcon).
-
+
- Dark theme: https://github.com/apache/openwhisk-vscode-extension/tree/master/resource/dark
- Light theme: https://github.com/apache/openwhisk-vscode-extension/tree/master/resource/light
-Those files are distributed under the XEIcon license (https://github.com/xpressengine/XEIcon#license).
+Those files are distributed under the XEIcon license (https://github.com/xpressengine/XEIcon#license).
diff --git a/resource/template/actioncode/sample.go b/resource/template/actioncode/sample.go
index d9342f9..e580b50 100644
--- a/resource/template/actioncode/sample.go
+++ b/resource/template/actioncode/sample.go
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package main
import "log"
@@ -15,4 +32,4 @@
log.Printf("name=%s\n", name)
// encode the result back in json
return msg
-}
\ No newline at end of file
+}
diff --git a/resource/template/actioncode/sample.js b/resource/template/actioncode/sample.js
index b45121a..f11986b 100644
--- a/resource/template/actioncode/sample.js
+++ b/resource/template/actioncode/sample.js
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
function main() {
return { msg: 'Hello world' };
}
diff --git a/resource/template/actioncode/sample.py b/resource/template/actioncode/sample.py
index a695b98..83ca680 100644
--- a/resource/template/actioncode/sample.py
+++ b/resource/template/actioncode/sample.py
@@ -1,3 +1,22 @@
+"""Python sample code.
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+"""
+
def main(args):
name = args.get("name", "stranger")
greeting = "Hello " + name + "!"
diff --git a/resource/template/actioncode/sample.rb b/resource/template/actioncode/sample.rb
index 9ad1938..4504df0 100644
--- a/resource/template/actioncode/sample.rb
+++ b/resource/template/actioncode/sample.rb
@@ -1,6 +1,24 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
def main(args)
name = args["name"] || "stranger"
greeting = "Hello #{name}!"
puts greeting
{ "greeting" => greeting }
- end
\ No newline at end of file
+ end
+
diff --git a/resource/template/actioncode/sample.swift b/resource/template/actioncode/sample.swift
index 6da92f8..75071a3 100644
--- a/resource/template/actioncode/sample.swift
+++ b/resource/template/actioncode/sample.swift
@@ -1,7 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
func main(args: [String:Any]) -> [String:Any] {
if let name = args["name"] as? String {
return [ "greeting" : "Hello \(name)!" ]
} else {
return [ "greeting" : "Hello stranger!" ]
}
-}
\ No newline at end of file
+}
diff --git a/test-fixtures/invalid-manifest.yaml b/test-fixtures/invalid-manifest.yaml
index e69de29..b1312a0 100644
--- a/test-fixtures/invalid-manifest.yaml
+++ b/test-fixtures/invalid-manifest.yaml
@@ -0,0 +1,16 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
diff --git a/test-fixtures/valid-manifest.yaml b/test-fixtures/valid-manifest.yaml
index 9e19d41..10dfe1a 100644
--- a/test-fixtures/valid-manifest.yaml
+++ b/test-fixtures/valid-manifest.yaml
@@ -41,8 +41,8 @@
place: the Shire
children: 13
height: 1.2
-
+
rules:
meetPersonRule:
trigger: meetPerson
- action: hello_world
\ No newline at end of file
+ action: hello_world
diff --git a/travis/scancode.sh b/travis/scancode.sh
new file mode 100755
index 0000000..bb146bc
--- /dev/null
+++ b/travis/scancode.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+set -e
+
+SCRIPTDIR=$(cd $(dirname "$0") && pwd)
+ROOTDIR="$SCRIPTDIR/../"
+HOMEDIR="$SCRIPTDIR/../../"
+UTIL_DIR="$HOMEDIR/openwhisk-utilities"
+
+# clone OpenWhisk utilities repo. in order to run scanCode.py
+cd $HOMEDIR
+
+if [ ! -d "openwhisk-utilities" ] ; then
+ git clone https://github.com/apache/openwhisk-utilities.git
+else
+ cd "openwhisk-utilities"
+ git pull
+fi
+
+# run scancode
+cd $UTIL_DIR
+scancode/scanCode.py --config scancode/ASF-Release.cfg $ROOTDIR
diff --git a/vsc-extension-quickstart.md b/vsc-extension-quickstart.md
index 869d46e..83dc669 100644
--- a/vsc-extension-quickstart.md
+++ b/vsc-extension-quickstart.md
@@ -1,3 +1,22 @@
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
+
# Welcome to your VS Code Extension
## What's in the folder
diff --git a/webpack.config.js b/webpack.config.js
index 209e1ff..a65d1dc 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
'use strict';
const path = require('path');
diff --git a/webview-template/invokeAction.html b/webview-template/invokeAction.html
index ec21ca2..30be2b1 100644
--- a/webview-template/invokeAction.html
+++ b/webview-template/invokeAction.html
@@ -1,3 +1,21 @@
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
<!DOCTYPE html>
<html lang="en">
<head>
@@ -23,7 +41,7 @@
}
.editor {
flex: 1;
- }
+ }
.footer {
margin-top: 10px;
min-height: 35px
@@ -96,4 +114,4 @@
}
</script>
</body>
-</html>
\ No newline at end of file
+</html>
diff --git a/webview-template/metadataEditor.html b/webview-template/metadataEditor.html
index 14c5c23..95ed026 100644
--- a/webview-template/metadataEditor.html
+++ b/webview-template/metadataEditor.html
@@ -1,3 +1,21 @@
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
<!DOCTYPE html>
<html lang="en">
<head>
@@ -119,4 +137,4 @@
}
</script>
</body>
-</html>
\ No newline at end of file
+</html>
diff --git a/webview-template/sequenceActionInfo.html b/webview-template/sequenceActionInfo.html
index 7bce0f6..6e8e26c 100644
--- a/webview-template/sequenceActionInfo.html
+++ b/webview-template/sequenceActionInfo.html
@@ -1,3 +1,21 @@
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
<!DOCTYPE html>
<html lang="en">
<head>
@@ -19,7 +37,7 @@
window.addEventListener('message', event => {
const message = event.data;
const list = document.getElementById('actions');
-
+
if (message.command === 'getData' && message.actions) {
setActionList(message.actions);
vscode.setState({ actions: message.actions });
@@ -35,4 +53,4 @@
});
}
</script>
-</html>
\ No newline at end of file
+</html>
diff --git a/webview-template/triggerInfo.html b/webview-template/triggerInfo.html
index c944303..1a1b301 100644
--- a/webview-template/triggerInfo.html
+++ b/webview-template/triggerInfo.html
@@ -1,3 +1,21 @@
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
<!DOCTYPE html>
<html lang="en">
<head>
@@ -79,17 +97,17 @@
annotations: annotationsEditor.getText()
})
}
-
+
function setTriggerData(state) {
triggerName.textContent = state.name;
-
+
// set editor contents
paramsEditor.set(JSON.parse(state.params));
annotationsEditor.set(JSON.parse(state.annotations));
-
+
let t = document.querySelector('#ruleRecord');
let tb = document.querySelector('#ruleTable');
-
+
if (state.rules) {
for (let [name, rule] of Object.entries(state.rules)) {
let row = document.importNode(t.content, true);
@@ -101,4 +119,4 @@
}
}
</script>
-</html>
\ No newline at end of file
+</html>
diff --git a/wskdeploy-template/minimal/HOW-TO-DEPLOY.md b/wskdeploy-template/minimal/HOW-TO-DEPLOY.md
index a63853b..0ae836e 100644
--- a/wskdeploy-template/minimal/HOW-TO-DEPLOY.md
+++ b/wskdeploy-template/minimal/HOW-TO-DEPLOY.md
@@ -1,3 +1,22 @@
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
+
# What is wskdeploy
`wskdeploy` is a utility to help you deploy any part of the OpenWhisk programming model using a Manifest file written in YAML. Use it to deploy all your OpenWhisk Packages, Actions, Triggers, and Rules!
@@ -72,4 +91,4 @@
$ cd src
$ npm install
$ npm run test
-```
\ No newline at end of file
+```
diff --git a/wskdeploy-template/minimal/manifest.yaml b/wskdeploy-template/minimal/manifest.yaml
index 4b6f5d0..5bad634 100644
--- a/wskdeploy-template/minimal/manifest.yaml
+++ b/wskdeploy-template/minimal/manifest.yaml
@@ -43,4 +43,4 @@
rules:
meetPersonRule:
trigger: meetPerson
- action: hello_world
\ No newline at end of file
+ action: hello_world
diff --git a/wskdeploy-template/minimal/src/index.js b/wskdeploy-template/minimal/src/index.js
index 7d8e8a4..a2ed166 100644
--- a/wskdeploy-template/minimal/src/index.js
+++ b/wskdeploy-template/minimal/src/index.js
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
function main(params) {
const msg = 'Hello, ' + params.name + ' from ' + params.place;
const family = 'You have ' + params.children + ' children ';
diff --git a/wskdeploy-template/minimal/src/index.test.js b/wskdeploy-template/minimal/src/index.test.js
index 7773ada..494302a 100644
--- a/wskdeploy-template/minimal/src/index.test.js
+++ b/wskdeploy-template/minimal/src/index.test.js
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
const { main } = require('.');
test('results have a greeting and details property', () => {