diff --git a/src/storage.ts b/src/storage.ts index d1a4b6945..cbd5bc275 100644 --- a/src/storage.ts +++ b/src/storage.ts @@ -664,12 +664,8 @@ export class Storage extends Service { options = Object.assign({}, options, {apiEndpoint}); - // Note: EMULATOR_HOST, if present and not overridden, has been applied to - // `options` at this point. Also, this uses string concatenation because the - // endpoint may contain a base path, and any trailing slash on that will - // have been removed, so using the two-arg URL constructor for relative path - // resolution won't work. - const baseUrl = new URL(options.apiEndpoint + '/storage/v1').href; + // Note: EMULATOR_HOST is an experimental configuration variable. Use apiEndpoint instead. + const baseUrl = EMULATOR_HOST || `${options.apiEndpoint}/storage/v1`; const config = { apiEndpoint: options.apiEndpoint!, diff --git a/test/index.ts b/test/index.ts index eb29893b8..166da822a 100644 --- a/test/index.ts +++ b/test/index.ts @@ -435,33 +435,27 @@ describe('Storage', () => { delete process.env.STORAGE_EMULATOR_HOST; }); - it('should set baseUrl to env var STORAGE_EMULATOR_HOST plus standard path', () => { + it('should set baseUrl to env var STORAGE_EMULATOR_HOST', () => { const storage = new Storage({ projectId: PROJECT_ID, }); const calledWith = storage.calledWith_[0]; - assert.strictEqual(calledWith.baseUrl, EMULATOR_HOST + '/storage/v1'); + assert.strictEqual(calledWith.baseUrl, EMULATOR_HOST); assert.strictEqual( calledWith.apiEndpoint, 'https://internal.benchmark.com/path' ); }); - it('should be overridden by apiEndpoint', () => { + it('should be overriden by apiEndpoint', () => { const storage = new Storage({ projectId: PROJECT_ID, apiEndpoint: 'https://some.api.com', }); const calledWith = storage.calledWith_[0]; - // NOTE: this used to assert partially the opposite of what the test - // says: it checked that baseUrl was _not_ overridden, but apiEndpoint - // was. - assert.strictEqual( - calledWith.baseUrl, - 'https://some.api.com/storage/v1' - ); + assert.strictEqual(calledWith.baseUrl, EMULATOR_HOST); assert.strictEqual(calledWith.apiEndpoint, 'https://some.api.com'); }); @@ -474,13 +468,7 @@ describe('Storage', () => { }); const calledWith = storage.calledWith_[0]; - // NOTE: this used to assert partially the opposite of what the test - // says: it checked that baseUrl was _not_ overridden, but apiEndpoint - // was. - assert.strictEqual( - calledWith.baseUrl, - 'https://internal.benchmark.com/path/storage/v1' - ); + assert.strictEqual(calledWith.baseUrl, EMULATOR_HOST); assert.strictEqual( calledWith.apiEndpoint, 'https://internal.benchmark.com/path'