diff --git a/packages/protractor/BUILD.bazel b/packages/protractor/BUILD.bazel index b19836d832..7a2ee6f905 100644 --- a/packages/protractor/BUILD.bazel +++ b/packages/protractor/BUILD.bazel @@ -62,7 +62,8 @@ nodejs_test( ts_library( name = "protractor", srcs = ["protractor-utils.ts"], - module_name = "@bazel/protractor/protractor-utils", + data = ["package.json"], + module_name = "@bazel/protractor", module_root = "protractor-utils", deps = ["@npm//@types/node"], ) diff --git a/packages/protractor/package.json b/packages/protractor/package.json index e0a470b148..bf4a6d0843 100644 --- a/packages/protractor/package.json +++ b/packages/protractor/package.json @@ -15,10 +15,11 @@ "protractor", "bazel" ], + "main": "protractor-utils.js", "peerDependencies": { "protractor": ">=5.0.0" }, "scripts": { "postinstall": "node npm_version_check.js" } -} \ No newline at end of file +} diff --git a/packages/protractor/protractor-utils.ts b/packages/protractor/protractor-utils.ts index 427197851b..16e2322eb4 100644 --- a/packages/protractor/protractor-utils.ts +++ b/packages/protractor/protractor-utils.ts @@ -15,6 +15,7 @@ * limitations under the License. */ +const runfiles = require(process.env['BAZEL_NODE_RUNFILES_HELPER']!); import * as child_process from 'child_process'; import * as net from 'net'; @@ -98,7 +99,7 @@ export interface ServerSpec { export async function runServer( workspace: string, serverTarget: string, portFlag: string, serverArgs: string[], timeout = 5000): Promise { - const serverPath = require.resolve(`${workspace}/${serverTarget}`); + const serverPath = runfiles.resolve(`${workspace}/${serverTarget}`); const port = await findFreeTcpPort(); // Start the Bazel server binary with a random free TCP port. diff --git a/packages/protractor/protractor.conf.js b/packages/protractor/protractor.conf.js index 6726f5610c..c0f5be11f6 100644 --- a/packages/protractor/protractor.conf.js +++ b/packages/protractor/protractor.conf.js @@ -14,6 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +const runfiles = require(process.env['BAZEL_NODE_RUNFILES_HELPER']); const path = require('path'); function log_verbose(...m) { @@ -76,7 +77,7 @@ let conf = {}; // Import the user's base protractor configuration if specified if (configPath) { - const baseConf = require(configPath); + const baseConf = require(runfiles.resolve(configPath)); if (!baseConf.config) { throw new Error('Invalid base protractor configuration. Expected config to be exported.'); } @@ -86,7 +87,7 @@ if (configPath) { // Import the user's on prepare function if specified if (onPreparePath) { - const onPrepare = require(onPreparePath); + const onPrepare = require(runfiles.resolve(onPreparePath)); if (typeof onPrepare === 'function') { const original = conf.onPrepare; conf.onPrepare = function() { diff --git a/packages/protractor/test/protractor-utils/BUILD.bazel b/packages/protractor/test/protractor-utils/BUILD.bazel index 0677e3e08a..47eb1180d3 100644 --- a/packages/protractor/test/protractor-utils/BUILD.bazel +++ b/packages/protractor/test/protractor-utils/BUILD.bazel @@ -28,5 +28,6 @@ jasmine_node_test( srcs = [":protractor_utils_tests_lib"], data = [ ":fake-devserver", + "//packages/protractor", ], ) diff --git a/packages/protractor/test/protractor-utils/index_test.ts b/packages/protractor/test/protractor-utils/index_test.ts index a765b1d730..0abfcd7a38 100644 --- a/packages/protractor/test/protractor-utils/index_test.ts +++ b/packages/protractor/test/protractor-utils/index_test.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import {runServer} from '@bazel/protractor/protractor-utils'; +import {runServer} from '@bazel/protractor'; describe('Bazel protractor utils', () => { it('should be able to start devserver', async () => { diff --git a/packages/protractor/test/protractor/conf.ts b/packages/protractor/test/protractor/conf.ts index 3b7c953249..b055ace9d3 100644 --- a/packages/protractor/test/protractor/conf.ts +++ b/packages/protractor/test/protractor/conf.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import * as protractorUtils from '@bazel/protractor/protractor-utils'; +import * as protractorUtils from '@bazel/protractor'; import {browser} from 'protractor'; const http = require('http');