Skip to content

Commit

Permalink
feat: add initial samples and tests (#4)
Browse files Browse the repository at this point in the history
  • Loading branch information
sofisl authored Jun 2, 2021
1 parent 58c5edc commit c5d6b2e
Show file tree
Hide file tree
Showing 8 changed files with 175 additions and 35 deletions.
15 changes: 14 additions & 1 deletion packages/google-cloud-shell/.gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,15 @@
**/*.log
**/node_modules
.coverage
coverage
.nyc_output
docs/
out/
build/
node_modules
system-test/secrets.js
system-test/*key.json
*.lock
.DS_Store
package-lock.json
__pycache__
owl-bot-staging
55 changes: 55 additions & 0 deletions packages/google-cloud-shell/.jsdoc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
// Copyright 2021 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
//
// https://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.
//
// ** This file is automatically generated by gapic-generator-typescript. **
// ** https://github.com/googleapis/gapic-generator-typescript **
// ** All changes to this file may be overwritten. **

'use strict';

module.exports = {
opts: {
readme: './README.md',
package: './package.json',
template: './node_modules/jsdoc-fresh',
recurse: true,
verbose: true,
destination: './docs/'
},
plugins: [
'plugins/markdown',
'jsdoc-region-tag'
],
source: {
excludePattern: '(^|\\/|\\\\)[._]',
include: [
'build/src',
'protos'
],
includePattern: '\\.js$'
},
templates: {
copyright: 'Copyright 2021 Google LLC',
includeDate: false,
sourceFiles: false,
systemName: '@google-cloud/cloud-shell',
theme: 'lumen',
default: {
outputSourceFiles: false
}
},
markdown: {
idInHeadings: true
}
};
38 changes: 36 additions & 2 deletions packages/google-cloud-shell/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained].
* [Quickstart](#quickstart)
* [Before you begin](#before-you-begin)
* [Installing the client library](#installing-the-client-library)


* [Using the client library](#using-the-client-library)
* [Samples](#samples)
* [Versioning](#versioning)
* [Contributing](#contributing)
* [License](#license)
Expand All @@ -55,6 +55,40 @@ npm install @google-cloud/cloud-shell
```


### Using the client library

```javascript
// Imports the Google Cloud client library

// remove this line after package is released
// eslint-disable-next-line node/no-missing-require
const {CloudShellServiceClient} = require('@google-cloud/cloud-shell');

// TODO(developer): replace with your prefered project ID.
// const projectId = 'my-project'

// Creates a client
// eslint-disable-next-line no-unused-vars
const client = new CloudShellServiceClient();

//TODO(library generator): write the actual function you will be testing
async function initializeClient() {
const operation = await client.initialize();
console.info(operation);
}
initializeClient();

```



## Samples

Samples are in the [`samples/`](https://github.com/googleapis/nodejs-cloud-shell/tree/master/samples) directory. Each sample's `README.md` has instructions for running its sample.

| Sample | Source Code | Try it |
| --------------------------- | --------------------------------- | ------ |
| Quickstart | [source code](https://github.com/googleapis/nodejs-cloud-shell/blob/master/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-cloud-shell&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) |



Expand Down
12 changes: 11 additions & 1 deletion packages/google-cloud-shell/linkinator.config.json
Original file line number Diff line number Diff line change
@@ -1 +1,11 @@
{"recurse":true,"skip":["https://codecov.io/gh/googleapis/","www.googleapis.com","img.shields.io"],"silent":true,"concurrency":10}
{
"recurse": true,
"skip": [
"https://github.com/googleapis/nodejs-cloud-shell/blob/master/CHANGELOG.md",
"https://codecov.io/gh/googleapis/",
"www.googleapis.com",
"img.shields.io"
],
"silent": true,
"concurrency": 10
}
2 changes: 1 addition & 1 deletion packages/google-cloud-shell/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,6 @@
"webpack-cli": "^4.7.0"
},
"engines": {
"node": ">=v12.0.0"
"node": ">=v10.0.0"
}
}
50 changes: 50 additions & 0 deletions packages/google-cloud-shell/samples/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
[//]: # "This README.md file is auto-generated, all changes to this file will be lost."
[//]: # "To regenerate it, use `python -m synthtool`."
<img src="https://avatars2.githubusercontent.com/u/2810941?v=3&s=96" alt="Google Cloud Platform logo" title="Google Cloud Platform" align="right" height="96" width="96"/>

# [Cloud Shell: Node.js Samples](https://github.com/googleapis/nodejs-cloud-shell)

[![Open in Cloud Shell][shell_img]][shell_link]



## Table of Contents

* [Before you begin](#before-you-begin)
* [Samples](#samples)
* [Quickstart](#quickstart)

## Before you begin

Before running the samples, make sure you've followed the steps outlined in
[Using the client library](https://github.com/googleapis/nodejs-cloud-shell#using-the-client-library).

`cd samples`

`npm install`

`cd ..`

## Samples



### Quickstart

View the [source code](https://github.com/googleapis/nodejs-cloud-shell/blob/master/samples/quickstart.js).

[![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-cloud-shell&page=editor&open_in_editor=samples/quickstart.js,samples/README.md)

__Usage:__


`node samples/quickstart.js`






[shell_img]: https://gstatic.com/cloudssh/images/open-btn.png
[shell_link]: https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-cloud-shell&page=editor&open_in_editor=samples/README.md
[product-docs]: https://cloud.google.com/shell/
13 changes: 5 additions & 8 deletions packages/google-cloud-shell/samples/quickstart.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
'use strict';

async function main() {

// [START nodejs_cloud_shell_quickstart]
// Imports the Google Cloud client library

Expand All @@ -27,16 +26,14 @@ async function main() {

// Creates a client
// eslint-disable-next-line no-unused-vars
const client = new {CloudShellServiceClient}();
const client = new CloudShellServiceClient();

//TODO(library generator): write the actual function you will be testing
async function doSomething() {
console.log('DPE! Change this code so that it shows how to use the library! See comments below on structure.')
// const [thing] = await client.methodName({
// });
// console.info(thing);
async function initializeClient() {
const operation = await client.initialize();
console.info(operation);
}
doSomething();
initializeClient();
// [END nodejs_cloud_shell_quickstart]
}

Expand Down
25 changes: 3 additions & 22 deletions packages/google-cloud-shell/samples/test/quickstart.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,35 +19,16 @@

const path = require('path');
const cp = require('child_process');
const {before, describe, it} = require('mocha');
// eslint-disable-next-line node/no-missing-require
const {CloudShellServiceClient} = require('@google-cloud/cloud-shell');
// eslint-disable-next-line no-unused-vars, node/no-missing-require
const {describe, it} = require('mocha');
const {assert} = require('chai');

const execSync = cmd => cp.execSync(cmd, {encoding: 'utf-8'});

const cwd = path.join(__dirname, '..');

const client = new {CloudShellServiceClient}();

describe('Quickstart', () => {
//TODO: remove this if not using the projectId
// eslint-disable-next-line no-unused-vars
let projectId;

before(async () => {
// eslint-disable-next-line no-unused-vars
projectId = await client.getProjectId();
});

it('should run quickstart', async () => {
//TODO: remove this line
// eslint-disable-next-line no-unused-vars
const stdout = execSync(
`node ./quickstart.js`,
{cwd}
);
//assert(stdout, stdout !== null);
const stdout = execSync('node ./quickstart.js', {cwd});
assert.match(stdout, /ServiceClientImpl/);
});
});

0 comments on commit c5d6b2e

Please sign in to comment.