@apistudio/apim-cli
Version:
CLI for API Management Products
43 lines (32 loc) • 1.44 kB
text/typescript
/**
* Copyright IBM Corp. 2024, 2025
*/
import { FileUploadFactory } from '../../src/model-factories/fileupload.factory.js';
describe('FileUploadFactory', () => {
let factory: FileUploadFactory;
beforeEach(() => {
factory = new FileUploadFactory();
});
it('should create and retrieve a file by key', () => {
factory.create({ key: 'file1', fileName: 'test.txt', value: 'data' });
const file = factory.getUploadedFile('file1');
expect(file).toEqual({ fileName: 'test.txt', value: 'data' });
});
it('should overwrite a file if the same key is used', () => {
factory.create({ key: 'file1', fileName: 'test1.txt', value: 'data1' });
factory.create({ key: 'file1', fileName: 'test2.txt', value: 'data2' });
const file = factory.getUploadedFile('file1');
expect(file).toEqual({ fileName: 'test2.txt', value: 'data2' });
});
it('should return undefined for a non-existent key', () => {
expect(factory.getUploadedFile('unknown')).toBeUndefined();
});
it('should return all uploaded files', () => {
factory.create({ key: 'file1', fileName: 'a.txt', value: 'A' });
factory.create({ key: 'file2', fileName: 'b.txt', value: 'B' });
const allFiles = factory.getAllUploadedFiles();
expect(allFiles).toContainEqual({ fileName: 'a.txt', value: 'A' });
expect(allFiles).toContainEqual({ fileName: 'b.txt', value: 'B' });
expect(allFiles).toHaveLength(2);
});
});