diff --git a/synthtool/languages/node_mono_repo.py b/synthtool/languages/node_mono_repo.py index f9d167837..415923970 100644 --- a/synthtool/languages/node_mono_repo.py +++ b/synthtool/languages/node_mono_repo.py @@ -116,7 +116,16 @@ def template_metadata(relative_dir: str) -> Dict[str, Any]: except FileNotFoundError: pass - all_samples = samples.all_samples([str(Path(relative_dir, "samples/*.js"))]) + all_samples = samples.all_samples( + [ + str(Path(relative_dir, "samples/*.js")), + str(Path(relative_dir, "samples/*/*.js")), + str(Path(relative_dir, "samples/*/*/*.js")), + ] + ) + + for sample in all_samples: + sample["file"] = re.sub(r"/workspace/google-cloud-node/", "", sample["file"]) # quickstart.js sample is special - only include it in the samples list if there is # a quickstart snippet present in the file diff --git a/tests/fixtures/nodejs_mono_repo_with_samples/packages/datastore/samples/workspace/google-cloud-node/random_sample.js b/tests/fixtures/nodejs_mono_repo_with_samples/packages/datastore/samples/workspace/google-cloud-node/random_sample.js new file mode 100644 index 000000000..ba924273a --- /dev/null +++ b/tests/fixtures/nodejs_mono_repo_with_samples/packages/datastore/samples/workspace/google-cloud-node/random_sample.js @@ -0,0 +1,89 @@ +// Copyright 2022 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'; + +function main(parent, backupId, backup) { + // [START metastore_v1_generated_DataprocMetastore_CreateBackup_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The relative resource name of the service in which to create a backup + * of the following form: + * `projects/{project_number}/locations/{location_id}/services/{service_id}`. + */ + // const parent = 'abc123' + /** + * Required. The ID of the backup, which is used as the final component of the + * backup's name. + * This value must be between 1 and 64 characters long, begin with a letter, + * end with a letter or number, and consist of alpha-numeric ASCII characters + * or hyphens. + */ + // const backupId = 'abc123' + /** + * Required. The backup to create. The `name` field is ignored. The ID of the created + * backup must be provided in the request's `backup_id` field. + */ + // const backup = {} + /** + * Optional. A request ID. Specify a unique request ID to allow the server to ignore the + * request if it has completed. The server will ignore subsequent requests + * that provide a duplicate request ID for at least 60 minutes after the first + * request. + * For example, if an initial request times out, followed by another request + * with the same request ID, the server ignores the second request to prevent + * the creation of duplicate commitments. + * The request ID must be a valid + * UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) + * A zero UUID (00000000-0000-0000-0000-000000000000) is not supported. + */ + // const requestId = 'abc123' + + // Imports the Metastore library + const {DataprocMetastoreClient} = require('@google-cloud/dataproc-metastore').v1; + + // Instantiates a client + const metastoreClient = new DataprocMetastoreClient(); + + async function callCreateBackup() { + // Construct request + const request = { + parent, + backupId, + backup, + }; + + // Run request + const [operation] = await metastoreClient.createBackup(request); + const [response] = await operation.promise(); + console.log(response); + } + + callCreateBackup(); + // [END metastore_v1_generated_DataprocMetastore_CreateBackup_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/tests/test_node_mono_repo.py b/tests/test_node_mono_repo.py index c8293c4a0..ccdf8c5ab 100644 --- a/tests/test_node_mono_repo.py +++ b/tests/test_node_mono_repo.py @@ -88,6 +88,15 @@ def test_no_samples(): assert len(metadata["samples"]) == 0 +def test_fix_sample_path(): + with util.copied_fixtures_dir(FIXTURES): + metadata = node_mono_repo.template_metadata( + FIXTURES / "nodejs_mono_repo_with_samples" / "packages" / "datastore" + ) + for sample in metadata["samples"]: + assert "/workspace/google-cloud-node/" not in sample["file"] + + def test_extract_clients_no_file(): index_ts_path = pathlib.Path( FIXTURES / "node_templates" / "index_samples" / "no_exist_index.ts"