UNPKG

@heyframe-ag/meteor-admin-sdk

Version:

The Meteor SDK for the HeyFrame Administration.

183 lines 11.8 kB
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()); }); }; (function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define(["require", "exports", "./repository-adapter"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const repository_adapter_1 = require("./repository-adapter"); describe('RepositoryAdapter', () => { // Mock repository source const mockEntity = { id: '123', name: 'Test Product' }; const mockEntityCollection = { length: 1, }; const mockContext = { languageId: 'en-US' }; const mockAsyncSource = { search: jest.fn().mockResolvedValue(mockEntityCollection), get: jest.fn().mockResolvedValue(mockEntity), save: jest.fn().mockResolvedValue(undefined), clone: jest.fn().mockResolvedValue({ id: '456', name: 'Cloned Product' }), saveAll: jest.fn().mockResolvedValue(undefined), delete: jest.fn().mockResolvedValue(undefined), hasChanges: jest.fn().mockResolvedValue(true), create: jest.fn().mockResolvedValue(mockEntity), }; const mockSyncSource = { search: jest.fn().mockResolvedValue(mockEntityCollection), get: jest.fn().mockResolvedValue(mockEntity), save: jest.fn().mockResolvedValue(undefined), clone: jest.fn().mockResolvedValue({ id: '456', name: 'Cloned Product' }), saveAll: jest.fn().mockResolvedValue(undefined), delete: jest.fn().mockResolvedValue(undefined), hasChanges: jest.fn().mockReturnValue(true), create: jest.fn().mockReturnValue(mockEntity), }; const asyncRepositoryAdapter = new repository_adapter_1.RepositoryAdapter(mockAsyncSource); const syncRepositoryAdapter = new repository_adapter_1.RepositoryAdapter(mockSyncSource); beforeEach(() => { jest.clearAllMocks(); }); describe('async repository', () => { it('should call source.search with provided parameters', () => __awaiter(void 0, void 0, void 0, function* () { const criteria = { limit: 10 }; const result = yield asyncRepositoryAdapter.search(criteria, mockContext); expect(mockAsyncSource.search).toHaveBeenCalledWith(criteria, mockContext); expect(result).toBe(mockEntityCollection); })); it('should call source.get with provided parameters', () => __awaiter(void 0, void 0, void 0, function* () { const id = '123'; const criteria = { limit: 1 }; const result = yield asyncRepositoryAdapter.get(id, mockContext, criteria); expect(mockAsyncSource.get).toHaveBeenCalledWith(id, mockContext, criteria); expect(result).toBe(mockEntity); })); it('should call source.save with provided parameters', () => __awaiter(void 0, void 0, void 0, function* () { yield asyncRepositoryAdapter.save(mockEntity, mockContext); expect(mockAsyncSource.save).toHaveBeenCalledWith(mockEntity, mockContext); })); it('should call source.clone with provided parameters', () => __awaiter(void 0, void 0, void 0, function* () { const entityId = '123'; const behavior = { deep: true }; const result = yield asyncRepositoryAdapter.clone(entityId, behavior, mockContext); expect(mockAsyncSource.clone).toHaveBeenCalledWith(entityId, behavior, mockContext); expect(result).toEqual({ id: '456', name: 'Cloned Product' }); })); it('should handle Promise return from source.hasChanges', () => __awaiter(void 0, void 0, void 0, function* () { mockAsyncSource.hasChanges = jest.fn().mockResolvedValue(true); const result = yield asyncRepositoryAdapter.hasChanges(mockEntity); expect(mockAsyncSource.hasChanges).toHaveBeenCalledWith(mockEntity); expect(result).toBe(true); })); it('should handle boolean return from source.hasChanges', () => __awaiter(void 0, void 0, void 0, function* () { mockAsyncSource.hasChanges = jest.fn().mockReturnValue(false); const result = yield asyncRepositoryAdapter.hasChanges(mockEntity); expect(mockAsyncSource.hasChanges).toHaveBeenCalledWith(mockEntity); expect(result).toBe(false); })); it('should call source.saveAll with provided parameters', () => __awaiter(void 0, void 0, void 0, function* () { yield asyncRepositoryAdapter.saveAll(mockEntityCollection, mockContext); expect(mockAsyncSource.saveAll).toHaveBeenCalledWith(mockEntityCollection, mockContext); })); it('should call source.delete with provided parameters', () => __awaiter(void 0, void 0, void 0, function* () { const entityId = '123'; yield asyncRepositoryAdapter.delete(entityId, mockContext); expect(mockAsyncSource.delete).toHaveBeenCalledWith(entityId, mockContext); })); it('should handle Promise return from source.create', () => __awaiter(void 0, void 0, void 0, function* () { mockAsyncSource.create = jest.fn().mockResolvedValue(mockEntity); const entityId = '123'; const result = yield asyncRepositoryAdapter.create(mockContext, entityId); expect(mockAsyncSource.create).toHaveBeenCalledWith(mockContext, entityId); expect(result).toBe(mockEntity); })); it('should handle direct return from source.create', () => __awaiter(void 0, void 0, void 0, function* () { mockAsyncSource.create = jest.fn().mockReturnValue(mockEntity); const entityId = '123'; const result = yield asyncRepositoryAdapter.create(mockContext, entityId); expect(mockAsyncSource.create).toHaveBeenCalledWith(mockContext, entityId); expect(result).toBe(mockEntity); })); }); describe('sync repository', () => { it('should call source.search with provided parameters', () => __awaiter(void 0, void 0, void 0, function* () { const criteria = { limit: 10 }; const result = yield syncRepositoryAdapter.search(criteria, mockContext); expect(mockSyncSource.search).toHaveBeenCalledWith(criteria, mockContext); expect(result).toBe(mockEntityCollection); })); it('should call source.get with provided parameters', () => __awaiter(void 0, void 0, void 0, function* () { const id = '123'; const criteria = { limit: 1 }; const result = yield syncRepositoryAdapter.get(id, mockContext, criteria); expect(mockSyncSource.get).toHaveBeenCalledWith(id, mockContext, criteria); expect(result).toBe(mockEntity); })); it('should call source.save with provided parameters', () => __awaiter(void 0, void 0, void 0, function* () { yield syncRepositoryAdapter.save(mockEntity, mockContext); expect(mockSyncSource.save).toHaveBeenCalledWith(mockEntity, mockContext); })); it('should call source.clone with provided parameters', () => __awaiter(void 0, void 0, void 0, function* () { const entityId = '123'; const behavior = { deep: true }; const result = yield syncRepositoryAdapter.clone(entityId, behavior, mockContext); expect(mockSyncSource.clone).toHaveBeenCalledWith(entityId, behavior, mockContext); expect(result).toEqual({ id: '456', name: 'Cloned Product' }); })); it('should handle Promise return from source.hasChanges', () => __awaiter(void 0, void 0, void 0, function* () { mockSyncSource.hasChanges = jest.fn().mockResolvedValue(true); const result = yield syncRepositoryAdapter.hasChanges(mockEntity); expect(mockSyncSource.hasChanges).toHaveBeenCalledWith(mockEntity); expect(result).toBe(true); })); it('should handle boolean return from source.hasChanges', () => __awaiter(void 0, void 0, void 0, function* () { mockSyncSource.hasChanges = jest.fn().mockReturnValue(false); const result = yield syncRepositoryAdapter.hasChanges(mockEntity); expect(mockSyncSource.hasChanges).toHaveBeenCalledWith(mockEntity); expect(result).toBe(false); })); it('should call source.saveAll with provided parameters', () => __awaiter(void 0, void 0, void 0, function* () { yield syncRepositoryAdapter.saveAll(mockEntityCollection, mockContext); expect(mockSyncSource.saveAll).toHaveBeenCalledWith(mockEntityCollection, mockContext); })); it('should call source.delete with provided parameters', () => __awaiter(void 0, void 0, void 0, function* () { const entityId = '123'; yield syncRepositoryAdapter.delete(entityId, mockContext); expect(mockSyncSource.delete).toHaveBeenCalledWith(entityId, mockContext); })); it('should handle Promise return from source.create', () => __awaiter(void 0, void 0, void 0, function* () { mockSyncSource.create = jest.fn().mockResolvedValue(mockEntity); const entityId = '123'; const result = yield syncRepositoryAdapter.create(mockContext, entityId); expect(mockSyncSource.create).toHaveBeenCalledWith(mockContext, entityId); expect(result).toBe(mockEntity); })); it('should handle direct return from source.create', () => __awaiter(void 0, void 0, void 0, function* () { mockSyncSource.create = jest.fn().mockReturnValue(mockEntity); const entityId = '123'; const result = yield syncRepositoryAdapter.create(mockContext, entityId); expect(mockSyncSource.create).toHaveBeenCalledWith(mockContext, entityId); expect(result).toBe(mockEntity); })); }); it('should create a repository adapter instance', () => { const mockSource = {}; const adapter = (0, repository_adapter_1.createRepositoryAdapter)(mockSource); expect(adapter).toBeInstanceOf(repository_adapter_1.RepositoryAdapter); }); }); }); //# sourceMappingURL=repository-adapter.spec.js.map