Skip to content

Commit c2dd901

Browse files
committed
feat(lib-storage): added test cases
1 parent c33dde5 commit c2dd901

File tree

1 file changed

+69
-3
lines changed

1 file changed

+69
-3
lines changed

lib/lib-storage/src/s3-transfer-manager/S3TransferManager.spec.ts

Lines changed: 69 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import { S3TransferManager } from "./S3TransferManager";
1111
* - removeEventListener()
1212
* - TM Constructor
1313
* - *iterateListeners()
14+
* - joinStreams()
15+
* - iterateStreams()
1416
* - validateExpectedRanges()
1517
*/
1618

@@ -114,7 +116,7 @@ describe("S3TransferManager Unit Tests", () => {
114116
});
115117
});
116118

117-
describe("addEventListener", () => {
119+
describe("addEventListener()", () => {
118120
it("Should register callbacks for all supported event types", () => {
119121
tm.addEventListener("transferInitiated", initiated);
120122
tm.addEventListener("bytesTransferred", transferring);
@@ -206,7 +208,7 @@ describe("S3TransferManager Unit Tests", () => {
206208
});
207209
});
208210

209-
describe("dispatchEvent", () => {
211+
describe("dispatchEvent()", () => {
210212
it("Should dispatch an event", () => {
211213
const mockCallback = vi.fn();
212214
tm.addEventListener("bytesTransferred", mockCallback);
@@ -259,9 +261,73 @@ describe("S3TransferManager Unit Tests", () => {
259261
expect(mockCallback).toHaveBeenCalledWith(event);
260262
expect(result).toBe(true);
261263
});
264+
265+
it("Should call listeners in the order they were added", () => {
266+
const callOrder: number[] = [];
267+
const mockCallback1 = vi.fn(() => callOrder.push(1));
268+
const mockCallback2 = vi.fn(() => callOrder.push(2));
269+
const mockCallback3 = vi.fn(() => callOrder.push(3));
270+
271+
tm.addEventListener("transferInitiated", mockCallback1);
272+
tm.addEventListener("transferInitiated", mockCallback2);
273+
tm.addEventListener("transferInitiated", mockCallback3);
274+
275+
const event = Object.assign(new Event("transferInitiated"), {
276+
request: {},
277+
snapshot: {},
278+
});
279+
280+
tm.dispatchEvent(event);
281+
282+
expect(callOrder).toEqual([1, 2, 3]);
283+
});
284+
285+
it("Should handle object-style callbacks with handleEvent method", () => {
286+
const mockCallback = vi.fn();
287+
const objectCallback = {
288+
handleEvent: mockCallback,
289+
};
290+
tm.addEventListener("transferInitiated", objectCallback as any);
291+
292+
const event = Object.assign(new Event("transferInitiated"), {
293+
request: {},
294+
snapshot: {},
295+
});
296+
297+
tm.dispatchEvent(event);
298+
299+
expect(mockCallback).toHaveBeenCalledTimes(1);
300+
expect(mockCallback).toHaveBeenCalledWith(event);
301+
});
302+
303+
it("Should handle events with no registered listeners", () => {
304+
const event = Object.assign(new Event("transferInitiated"), {
305+
request: {},
306+
snapshot: {},
307+
});
308+
const result = tm.dispatchEvent(event);
309+
310+
expect(result).toBe(true);
311+
});
312+
313+
it("Should handle unknown event types", () => {});
314+
315+
it("Should handle a mix of object-style callbacks and functions", () => {});
262316
});
263317

264-
describe.skip("removeEventListener", () => {});
318+
describe.skip("removeEventListener()", () => {
319+
it("Should remove a listener from an event", () => {});
320+
321+
it("Should remove a listener from an event", () => {});
322+
323+
it("Should remove a listener from an event", () => {});
324+
});
325+
326+
describe.skip("iterateListeners()", () => {});
327+
328+
describe.skip("joinStreams()", () => {});
329+
330+
describe.skip("iterateStreams()", () => {});
265331
});
266332

267333
describe("validateExpectedRanges()", () => {

0 commit comments

Comments
 (0)