@heyframe-ag/meteor-admin-sdk
Version:
The Meteor SDK for the HeyFrame Administration.
183 lines • 11.8 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());
});
};
(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