From 82e6f940aed1f4bd79bd456566f9872d57f89b37 Mon Sep 17 00:00:00 2001 From: chenyumic Date: Mon, 27 Aug 2018 10:30:12 -0700 Subject: [PATCH] Added sample for Using Environment Variables. (#722) * Added sample for Using Environment Variables. * Minor fix. * Remove .DS_Store --- functions/env_vars/README.md | 27 ++++++++++++++++++ functions/env_vars/index.js | 23 +++++++++++++++ functions/env_vars/package.json | 30 ++++++++++++++++++++ functions/env_vars/test/index.test.js | 41 +++++++++++++++++++++++++++ 4 files changed, 121 insertions(+) create mode 100644 functions/env_vars/README.md create mode 100644 functions/env_vars/index.js create mode 100644 functions/env_vars/package.json create mode 100644 functions/env_vars/test/index.test.js diff --git a/functions/env_vars/README.md b/functions/env_vars/README.md new file mode 100644 index 0000000000..3fd2fffcc8 --- /dev/null +++ b/functions/env_vars/README.md @@ -0,0 +1,27 @@ +Google Cloud Platform logo + +# Google Cloud Functions - Using Environment Variables sample + +See: + +* [Cloud Functions Using Environment Variables tutorial][tutorial] +* [Cloud Functions Using Environment Variables sample source code][code] + +[tutorial]: https://cloud.google.com/functions/docs/env-var +[code]: index.js + +## Deploy and run the sample + +See the [Cloud Functions Using Environment Variables tutorial][tutorial]. + +## Run the tests + +1. Read and follow the [prerequisites](../../#how-to-run-the-tests). + +2. Install dependencies: + + npm install + +3. Run the tests: + + npm test diff --git a/functions/env_vars/index.js b/functions/env_vars/index.js new file mode 100644 index 0000000000..51f5fd5c48 --- /dev/null +++ b/functions/env_vars/index.js @@ -0,0 +1,23 @@ +/** + * Copyright 2016, Google, LLC. + * Licensed 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'; + +// [START functions_env_vars] +exports.envVar = (req, res) => { + // Sends 'bar' as response + res.send(process.env.FOO); +}; +// [END functions_env_vars] diff --git a/functions/env_vars/package.json b/functions/env_vars/package.json new file mode 100644 index 0000000000..8205d53e3d --- /dev/null +++ b/functions/env_vars/package.json @@ -0,0 +1,30 @@ +{ + "name": "nodejs-docs-samples-env-vars", + "version": "0.0.1", + "private": true, + "license": "Apache-2.0", + "author": "Google Inc.", + "repository": { + "type": "git", + "url": "https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git" + }, + "engines": { + "node": ">=4.3.2" + }, + "scripts": { + "lint": "repo-tools lint", + "pretest": "npm run lint", + "test": "ava -T 20s --verbose test/*.test.js" + }, + "dependencies": {}, + "devDependencies": { + "@google-cloud/nodejs-repo-tools": "2.2.1", + "ava": "0.25.0", + "semistandard": "^12.0.1", + "sinon": "4.4.2" + }, + "cloud-repo-tools": { + "requiresKeyFile": true, + "requiresProjectId": true + } +} diff --git a/functions/env_vars/test/index.test.js b/functions/env_vars/test/index.test.js new file mode 100644 index 0000000000..6953dc02cd --- /dev/null +++ b/functions/env_vars/test/index.test.js @@ -0,0 +1,41 @@ +/** + * Copyright 2016, Google, LLC. + * Licensed 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 sinon = require(`sinon`); +const test = require(`ava`); +const functions = require(`../`); + +function getMocks () { + const req = {}; + const res = { + send: sinon.stub().returnsThis() + }; + + return { + req: req, + res: res + }; +} + +test.serial(`should read env vars`, (t) => { + const mocks = getMocks(); + process.env['FOO'] = 'bar'; + + functions.envVar(mocks.req, mocks.res); + + t.true(mocks.res.send.calledWith('bar')); +});