UNPKG

@tomei/product

Version:

NestJS package for product module

96 lines 4.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const product_repository_1 = require("../src/base/product/product.repository"); const globals_1 = require("@jest/globals"); const gemlab_product_1 = require("../src/components/gemlab-product/gemlab-product"); const sso_1 = require("@tomei/sso"); const config_1 = require("@tomei/config"); const activity_history_1 = require("@tomei/activity-history"); (0, globals_1.describe)('GemlabProduct', () => { const data = { ProductId: '123', Name: 'Test', Description: 'Test', SKU: 'Test', Type: 'Test', Remark: 'Test', IsTaxableYN: 'N', TaxCode: 'Test', IsPriceInclusiveTaxYN: 'N', Status: 'Active', VerifiedYN: 'Y', VerifiedById: '123', VerifiedAt: new Date(), VariantLevels: 0, VariantTypeLevel1: '', VariantTypeLevel2: '', VariantTypeLevel3: '', CreatedById: '123', CreatedAt: new Date(), UpdatedById: '123', UpdatedAt: new Date(), UpdatedSSYN: 'Y', }; (0, globals_1.beforeAll)(() => { }); const pRepoCreate = globals_1.jest .spyOn(product_repository_1.ProductRepository.prototype, 'create') .mockResolvedValue(Object.assign(Object.assign({}, data), { get: () => data })); globals_1.jest.spyOn(product_repository_1.ProductRepository.prototype, 'findByPk').mockResolvedValue(Object.assign(Object.assign({}, data), { get: () => data })); const GemLabMock = gemlab_product_1.GemLabProduct; GemLabMock['_GemLabProductRepository'] = { findOne: () => { return Object.assign(Object.assign({}, data), { get: () => data }); }, }; globals_1.jest.spyOn(sso_1.SessionService, 'init').mockResolvedValue({ setUserSession: globals_1.jest.fn(), retrieveUserSession: globals_1.jest.fn(), refreshDuration: globals_1.jest.fn(), }); globals_1.jest.spyOn(config_1.ApplicationConfig, 'getComponentConfigValue').mockResolvedValue("ezc"); globals_1.jest.spyOn(sso_1.LoginUser.prototype, 'checkPrivileges').mockResolvedValue(true); globals_1.jest.spyOn(activity_history_1.Activity.prototype, 'create').mockResolvedValue(undefined); (0, globals_1.describe)('init', () => { (0, globals_1.it)('should initialize the product base with existing data', async () => { globals_1.jest.spyOn(product_repository_1.ProductRepository.prototype, 'findOne').mockReturnValueOnce(Object.assign(Object.assign({}, data), { get: () => data })); const product = await GemLabMock.init('123'); (0, globals_1.expect)(product).toBeInstanceOf(gemlab_product_1.GemLabProduct); (0, globals_1.expect)(product.ProductId).toBe('123'); (0, globals_1.expect)(product.Name).toBe('Test'); (0, globals_1.expect)(product.Description).toBe('Test'); (0, globals_1.expect)(product.SKU).toBe('Test'); (0, globals_1.expect)(product.Type).toBe('Test'); (0, globals_1.expect)(product.Remark).toBe('Test'); (0, globals_1.expect)(product.IsTaxableYN).toBe('N'); (0, globals_1.expect)(product.TaxCode).toBe('Test'); (0, globals_1.expect)(product.IsPriceInclusiveTaxYN).toBe('N'); (0, globals_1.expect)(product.Status).toBe('Active'); (0, globals_1.expect)(product.VerifiedYN).toBe('Y'); (0, globals_1.expect)(product.VerifiedById).toBe('123'); (0, globals_1.expect)(product.VerifiedAt).toBeInstanceOf(Date); (0, globals_1.expect)(product.VariantLevels).toBe(0); (0, globals_1.expect)(product.VariantTypeLevel1).toBe(''); (0, globals_1.expect)(product.VariantTypeLevel2).toBe(''); (0, globals_1.expect)(product.VariantTypeLevel3).toBe(''); (0, globals_1.expect)(product.CreatedById).toBe('123'); (0, globals_1.expect)(product.CreatedAt).toBeInstanceOf(Date); (0, globals_1.expect)(product.UpdatedById).toBe('123'); (0, globals_1.expect)(product.UpdatedAt).toBeInstanceOf(Date); (0, globals_1.expect)(product.UpdatedSSYN).toBe('Y'); }); }); (0, globals_1.describe)('create', () => { (0, globals_1.it)('should create a new product', async () => { globals_1.jest .spyOn(product_repository_1.ProductRepository.prototype, 'findOne') .mockReturnValueOnce(null); const sessionService = await sso_1.SessionService.init(); const loginUser = await sso_1.LoginUser.init(sessionService); loginUser.ObjectId = '1234567890'; const product = await GemLabMock.init(); await product.create(loginUser); (0, globals_1.expect)(pRepoCreate).toBeCalledTimes(1); }); }); }); //# sourceMappingURL=gemlab-product.spec.js.map