@eyevinn/iaf-plugin-aws
Version:
Eyevinn Ingest Application Framework (IAF) plugin for upload and transcode in AWS
67 lines • 2.99 kB
JavaScript
;
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