Skip to content

Commit

Permalink
temporarily fix the tests
Browse files Browse the repository at this point in the history
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
  • Loading branch information
freben committed May 24, 2024
1 parent 4a3794b commit f27aa3d
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 26 deletions.
2 changes: 1 addition & 1 deletion docs/plugins/url-reader.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ files before generating a documentation site.

Since, the requirement for reading files is so essential for Backstage plugins,
the
[`coreServices.urlReader`](../reference/backend-plugin-api.coreservices.urlreader/)
[`coreServices.urlReader`](../reference/backend-plugin-api.coreservices.urlreader.md)
package provides a dedicated API for reading from such URL based remote
locations like GitHub, GitLab, Bitbucket, Google Cloud Storage, etc. This is
commonly referred to as "URL Reader". It takes care of making authenticated
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,31 +14,27 @@
* limitations under the License.
*/

import * as GoogleCloud from '@google-cloud/storage';
import { ConfigReader } from '@backstage/config';
import { JsonObject } from '@backstage/types';
import { DefaultReadTreeResponseFactory } from './tree';
import { GoogleGcsUrlReader } from './GoogleGcsUrlReader';
import { UrlReaderPredicateTuple } from './types';
import packageinfo from '@backstage/backend-defaults/package.json';
import packageinfo from '../../../../package.json';
import { mockServices } from '@backstage/backend-test-utils';

const bucketGetFilesMock = jest.fn();
jest.mock('@google-cloud/storage', () => {
class Bucket {
getFiles(query: any) {
return bucketGetFilesMock(query);
}
class Bucket {
getFiles(query: any) {
return bucketGetFilesMock(query);
}
class Storage {
bucket() {
return new Bucket();
}
}
class Storage {
bucket() {
return new Bucket();
}
return {
__esModule: true,
Storage,
};
});
}
jest.spyOn(GoogleCloud, 'Storage').mockReturnValue(new Storage() as any);

describe('GcsUrlReader', () => {
const createReader = (config: JsonObject): UrlReaderPredicateTuple[] => {
Expand Down Expand Up @@ -80,7 +76,7 @@ describe('GcsUrlReader', () => {
});
it('check if userAgent has been called with this key value', async () => {
const getStorage: any = {
userAgent: `backstage/backend-defaults.GoogleGcsUrlReader/${packageinfo.version}`,
userAgent: `backstage/backend-common.GoogleGcsUrlReader/${packageinfo.version}`,
};
jest.mock('@google-cloud/storage', () => {
return {
Expand All @@ -89,7 +85,7 @@ describe('GcsUrlReader', () => {
});
const getUserAgent = getStorage.userAgent.toString();
expect(getUserAgent).toBe(
`backstage/backend-defaults.GoogleGcsUrlReader/${packageinfo.version}`,
`backstage/backend-common.GoogleGcsUrlReader/${packageinfo.version}`,
);
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@
* limitations under the License.
*/

import * as GoogleCloud from '@google-cloud/storage';
import {
UrlReaderService,
UrlReaderReadTreeResponse,
UrlReaderReadUrlOptions,
UrlReaderReadUrlResponse,
UrlReaderSearchResponse,
} from '@backstage/backend-plugin-api';
import { Storage } from '@google-cloud/storage';
import { ReaderFactory } from './types';
import getRawBody from 'raw-body';
import {
Expand All @@ -30,7 +30,7 @@ import {
} from '@backstage/integration';
import { Readable } from 'stream';
import { ReadUrlResponseFactory } from './ReadUrlResponseFactory';
import packageinfo from '@backstage/backend-defaults/package.json';
import packageinfo from '../../../../package.json';

const GOOGLE_GCS_HOST = 'storage.cloud.google.com';

Expand Down Expand Up @@ -64,21 +64,21 @@ export class GoogleGcsUrlReader implements UrlReaderService {
const gcsConfig = readGoogleGcsIntegrationConfig(
config.getConfig('integrations.googleGcs'),
);
let storage: Storage;
let storage: GoogleCloud.Storage;
if (!gcsConfig.clientEmail || !gcsConfig.privateKey) {
logger.info(
'googleGcs credentials not found in config. Using default credentials provider.',
);
storage = new Storage({
userAgent: `backstage/backend-defaults.GoogleGcsUrlReader/${packageinfo.version}`,
storage = new GoogleCloud.Storage({
userAgent: `backstage/backend-common.GoogleGcsUrlReader/${packageinfo.version}`,
});
} else {
storage = new Storage({
storage = new GoogleCloud.Storage({
credentials: {
client_email: gcsConfig.clientEmail || undefined,
private_key: gcsConfig.privateKey || undefined,
},
userAgent: `backstage/backend-defaults.GoogleGcsUrlReader/${packageinfo.version}`,
userAgent: `backstage/backend-common.GoogleGcsUrlReader/${packageinfo.version}`,
});
}
const reader = new GoogleGcsUrlReader(gcsConfig, storage);
Expand All @@ -88,7 +88,7 @@ export class GoogleGcsUrlReader implements UrlReaderService {

constructor(
private readonly integration: GoogleGcsIntegrationConfig,
private readonly storage: Storage,
private readonly storage: GoogleCloud.Storage,
) {}

private readStreamFromUrl(url: string): Readable {
Expand Down

0 comments on commit f27aa3d

Please sign in to comment.