tests(techdocs-common): add globals and types for mocked files

Signed-off-by: Camila Belo <camilaibs@gmail.com>
This commit is contained in:
Camila Belo
2021-08-09 09:27:34 +02:00
parent 759f15a14a
commit 9181e8c6e0
11 changed files with 104 additions and 13 deletions
@@ -13,13 +13,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import type {
import {
BlobUploadCommonResponse,
ContainerGetPropertiesResponse,
} from '@azure/storage-blob';
import { EventEmitter } from 'events';
const storage = new (global as any).StorageFilesMock();
const storage = global.storageFilesMock;
export class BlockBlobClient {
private readonly blobName;
@@ -15,7 +15,7 @@
*/
import { Readable } from 'stream';
const storage = new (global as any).StorageFilesMock();
const storage = global.storageFilesMock;
class GCSFile {
private readonly path: string;
@@ -18,7 +18,7 @@ import { ReadStream } from 'fs';
export { Credentials } from 'aws-sdk';
const storage = new (global as any).StorageFilesMock();
const storage = global.storageFilesMock;
export class S3 {
constructor() {
+22
View File
@@ -0,0 +1,22 @@
/*
* Copyright 2020 The Backstage Authors
*
* 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
*
* http://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.
*/
declare module NodeJS {
interface Global {
rootDir: string;
storageFilesMock: IStorageFilesMock;
}
}
+24
View File
@@ -0,0 +1,24 @@
/*
* Copyright 2020 The Backstage Authors
*
* 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
*
* http://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.
*/
interface IStorageFilesMock {
emptyFiles(): void;
fileExists(targetPath: string): boolean;
readFile(targetPath: string): Buffer;
writeFile(targetPath: string, sourcePath: string): void;
writeFile(targetPath: string, sourceBuffer: Buffer): void;
writeFile(targetPath: string, source: string | Buffer): void;
}
+22
View File
@@ -0,0 +1,22 @@
/*
* Copyright 2020 The Backstage Authors
*
* 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
*
* http://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.
*/
declare module NodeJS {
interface Global {
rootDir: string;
storageFilesMock: IStorageFilesMock;
}
}
+5 -6
View File
@@ -18,18 +18,18 @@ import os from 'os';
import path from 'path';
import fs from 'fs-extra';
const rootDir = os.platform() === 'win32' ? 'C:\\rootDir' : '/rootDir';
const rootDir: string = os.platform() === 'win32' ? 'C:\\rootDir' : '/rootDir';
const encoding = 'utf8';
export class StorageFilesMock {
class StorageFilesMock implements IStorageFilesMock {
private files: Record<string, string>;
constructor() {
this.files = {};
}
public emptyFiles() {
public emptyFiles(): void {
this.files = {};
}
@@ -56,6 +56,5 @@ export class StorageFilesMock {
}
}
const _global = global as any;
_global.rootDir = rootDir;
_global.StorageFilesMock = StorageFilesMock;
global.rootDir = rootDir;
global.storageFilesMock = new StorageFilesMock();
@@ -26,7 +26,7 @@ import { AwsS3Publish } from './awsS3';
// NOTE: /packages/techdocs-common/__mocks__ is being used to mock aws-sdk client library
const rootDir = (global as any).rootDir;
const rootDir = global.rootDir;
const getEntityRootDir = (entity: Entity) => {
const {
@@ -26,7 +26,7 @@ import { AzureBlobStoragePublish } from './azureBlobStorage';
// NOTE: /packages/techdocs-common/__mocks__ is being used to mock Azure client library
const rootDir = (global as any).rootDir;
const rootDir = global.rootDir;
const getEntityRootDir = (entity: Entity) => {
const {
@@ -26,7 +26,7 @@ import { GoogleGCSPublish } from './googleStorage';
// NOTE: /packages/techdocs-common/__mocks__ is being used to mock Google Cloud Storage client library
const rootDir = (global as any).rootDir;
const rootDir = global.rootDir;
const getEntityRootDir = (entity: Entity) => {
const {
+24
View File
@@ -0,0 +1,24 @@
/*
* Copyright 2020 The Backstage Authors
*
* 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
*
* http://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.
*/
interface IStorageFilesMock {
emptyFiles(): void;
fileExists(targetPath: string): boolean;
readFile(targetPath: string): Buffer;
writeFile(targetPath: string, sourcePath: string): void;
writeFile(targetPath: string, sourceBuffer: Buffer): void;
writeFile(targetPath: string, source: string | Buffer): void;
}