UNPKG

@eyevinn/iaf-plugin-aws

Version:

Eyevinn Ingest Application Framework (IAF) plugin for upload and transcode in AWS

67 lines 2.99 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const s3Uploader_1 = require("./s3Uploader"); const stream_1 = require("stream"); const logger_1 = __importDefault(require("./utils/logger")); const logger = new logger_1.default(); const uploader = new s3Uploader_1.S3Uploader("bucket1", "outputBucket1", "testRegion1", {}, logger); const mockUploadInstance = { done: jest.fn(), promise: jest.fn(), on: jest.fn() }; jest.mock('@aws-sdk/lib-storage', () => { return { Upload: jest.fn(() => mockUploadInstance) }; }); const mockReadStream = jest.fn().mockImplementation(() => { const readable = new stream_1.Readable(); readable.push("hello world!"); readable.push(null); return readable; }); const mockFile = jest.fn().mockImplementation(() => { return { createReadStream: mockReadStream }; }); test("Should resolve on a successful upload", () => __awaiter(void 0, void 0, void 0, function* () { const mockResp = { '$metadata': { attempts: 1 } }; mockUploadInstance.done.mockResolvedValueOnce(mockResp); const data = yield uploader.upload(mockFile().createReadStream, "filename"); expect(data).toStrictEqual(mockResp); })); test("Should resolve on a successful upload with a specific watcher timer", () => __awaiter(void 0, void 0, void 0, function* () { const uploaderWithTimer = new s3Uploader_1.S3Uploader("bucket1", "outputBucket1", "testRegion1", {}, logger, 300); const mockResp = { '$metadata': { attempts: 1 } }; mockUploadInstance.done.mockResolvedValueOnce(mockResp); const data = yield uploaderWithTimer.upload(mockFile().createReadStream, "filename"); expect(data).toStrictEqual(mockResp); })); test("Should throw errors when upload fails", () => __awaiter(void 0, void 0, void 0, function* () { const mockErr = "Failed to upload file!"; mockUploadInstance.done.mockRejectedValueOnce(new Error(mockErr)); yield expect(uploader.upload(mockFile().createReadStream, "filename")) .rejects .toThrow(mockErr); })); //# sourceMappingURL=s3Uploader.test.js.map