From 7e0e74213fd73d50df344732470866165f6ad5e0 Mon Sep 17 00:00:00 2001 From: Kelvin Jin Date: Wed, 7 Mar 2018 15:02:37 -0800 Subject: [PATCH] Add client libraries integration test package --- test/client-libraries-integration/.gitignore | 1 + test/client-libraries-integration/init.sh | 13 ++++++++++++ .../client-libraries-integration/package.json | 9 +++++++++ .../repositories.json | 20 +++++++++++++++++++ .../use-grpc-js.js | 18 +++++++++++++++++ 5 files changed, 61 insertions(+) create mode 100644 test/client-libraries-integration/.gitignore create mode 100755 test/client-libraries-integration/init.sh create mode 100644 test/client-libraries-integration/package.json create mode 100644 test/client-libraries-integration/repositories.json create mode 100644 test/client-libraries-integration/use-grpc-js.js diff --git a/test/client-libraries-integration/.gitignore b/test/client-libraries-integration/.gitignore new file mode 100644 index 00000000..5fe2e366 --- /dev/null +++ b/test/client-libraries-integration/.gitignore @@ -0,0 +1 @@ +nodejs-*/ \ No newline at end of file diff --git a/test/client-libraries-integration/init.sh b/test/client-libraries-integration/init.sh new file mode 100755 index 00000000..c5834a77 --- /dev/null +++ b/test/client-libraries-integration/init.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +npm install + +for dir in $(node -p "require('./repositories.json').join('\n')"); do + if [ ! -d $dir ]; then + git clone https://github.com/googleapis/$dir + fi + pushd $dir + npm install + popd + node --require ./use-grpc-js.js $(npm bin)/_mocha --timeout 60000 $dir/system-test/*.js +done diff --git a/test/client-libraries-integration/package.json b/test/client-libraries-integration/package.json new file mode 100644 index 00000000..ea639a06 --- /dev/null +++ b/test/client-libraries-integration/package.json @@ -0,0 +1,9 @@ +{ + "name": "grpc-client-libraries-integration", + "version": "0.0.1", + "description": "", + "dependencies": { + "mocha": "^5.0.4", + "shimmer": "^1.2.0" + } +} diff --git a/test/client-libraries-integration/repositories.json b/test/client-libraries-integration/repositories.json new file mode 100644 index 00000000..31a937e9 --- /dev/null +++ b/test/client-libraries-integration/repositories.json @@ -0,0 +1,20 @@ +[ + "nodejs-datastore", + "nodejs-language", + "nodejs-storage", + "nodejs-translate", + "nodejs-logging", + "nodejs-video-intelligence", + "nodejs-dlp", + "nodejs-firestore", + "nodejs-pubsub", + "nodejs-spanner", + "nodejs-speech", + "nodejs-vision", + "nodejs-bigquery", + "nodejs-monitoring", + "nodejs-bigtable", + "nodejs-dns", + "nodejs-resource", + "nodejs-compute" +] \ No newline at end of file diff --git a/test/client-libraries-integration/use-grpc-js.js b/test/client-libraries-integration/use-grpc-js.js new file mode 100644 index 00000000..05273944 --- /dev/null +++ b/test/client-libraries-integration/use-grpc-js.js @@ -0,0 +1,18 @@ +const Module = require('module'); +const shimmer = require('shimmer'); + +const grpcImpl = require('../../packages/grpc-js-core'); +const grpcPJson = require('../../packages/grpc-js-core/package'); + +shimmer.wrap(Module, '_load', (moduleLoad) => { + return function Module_load(path, parent) { + if (path === 'grpc') { + return grpcImpl; + } else if (path.startsWith('grpc/package')) { + return grpcPJson; + } else { + const result = moduleLoad.apply(this, arguments); + return result; + } + }; +});