@tomei/product
Version:
NestJS package for product module
96 lines • 4.96 kB
JavaScript
;
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