UNPKG

@kenniy/godeye-data-contracts

Version:

Enterprise-grade base repository architecture for GOD-EYE microservices with zero overhead and maximum code reuse

72 lines (71 loc) 2.92 kB
"use strict"; /** * Quick Validation Test - Backward Compatibility * * Simple test to validate that all changes are backward compatible */ Object.defineProperty(exports, "__esModule", { value: true }); const response_1 = require("../core/response"); describe("Quick Backward Compatibility Validation", () => { it("should handle old pagination format and convert to new structure", () => { // Test data in old format (what existing services might send) const oldFormatData = { data: [ { id: "1", name: "John" }, { id: "2", name: "Jane" }, ], pagination: { total: 50, page: 2, limit: 10, totalPages: 5, hasNext: true, hasPrev: true, }, }; const response = response_1.ResponseFactory.success(oldFormatData); // Verify it converts to new standardized format expect(response.success).toBe(true); expect(response.data.items).toEqual([ { id: "1", name: "John" }, { id: "2", name: "Jane" }, ]); expect(response.data.total).toBe(50); expect(response.data.page).toBe(2); expect(response.data.limit).toBe(10); expect(response.data.totalPages).toBe(5); expect(response.data.hasNext).toBe(true); expect(response.data.hasPrev).toBe(true); }); it("should handle new items format correctly", () => { // Test data in new standardized format const newFormatData = { items: [{ id: "1", name: "Test" }], total: 25, page: 1, limit: 5, }; const response = response_1.ResponseFactory.success(newFormatData); expect(response.success).toBe(true); expect(response.data.items).toEqual([{ id: "1", name: "Test" }]); expect(response.data.total).toBe(25); expect(response.data.totalPages).toBe(5); expect(response.data.hasNext).toBe(true); expect(response.data.hasPrev).toBe(false); }); it("should not modify non-paginated data", () => { const simpleData = { id: "1", name: "Test User" }; const response = response_1.ResponseFactory.success(simpleData); expect(response.success).toBe(true); expect(response.data).toEqual(simpleData); expect(response.data.items).toBeUndefined(); expect(response.data.total).toBeUndefined(); }); it("should maintain error response format", () => { const errorResponse = response_1.ResponseFactory.error("Validation failed", "Invalid input", 400); expect(errorResponse.success).toBe(false); expect(errorResponse.error).toBe("Validation failed"); expect(errorResponse.message).toBe("Invalid input"); expect(errorResponse.status_code).toBe(400); }); });