1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- import * as format from 'string-template';
- import { assert } from 'chai';
- import { DomainLockNodeTemplate } from '../../../../../src/templates/custom-nodes/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate';
- import { CryptUtils } from '../../../../../src/utils/CryptUtils';
- /**
- * @param templateData
- * @param callsControllerFunctionName
- * @param currentDomain
- * @returns {Function}
- */
- function getFunctionFromTemplate (templateData: any, callsControllerFunctionName: string, currentDomain: string) {
- let domainLockTemplate: string = format(DomainLockNodeTemplate(), templateData);
- return Function(`
- document = {
- domain: '${currentDomain}'
- };
- var ${callsControllerFunctionName} = (function(){
- return function (context, fn){
- return function () {
- return fn.apply(context, arguments);
- };
- }
- })();
- ${domainLockTemplate}
- `)();
- }
- describe('DomainLockNodeTemplate (): string', () => {
- let domainsString: string,
- currentDomain: string,
- hiddenDomainsString: string,
- diff: string,
- singleNodeCallControllerFunctionName: string = 'callsController';
- it('should correctly runs code inside template if current domain matches with `domainsString`', () => {
- domainsString = ['www.example.com'].join(';');
- currentDomain = 'www.example.com';
- [
- hiddenDomainsString,
- diff
- ] = CryptUtils.hideString(domainsString, domainsString.length * 3);
- assert.doesNotThrow(() => getFunctionFromTemplate({
- domainLockFunctionName: 'domainLockFunction',
- diff: diff,
- domains: hiddenDomainsString,
- singleNodeCallControllerFunctionName
- }, singleNodeCallControllerFunctionName, currentDomain));
- });
- it('should correctly runs code inside template if current domain matches with base domain of `domainsString` item', () => {
- domainsString = ['www.test.com', '.example.com'].join(';');
- currentDomain = 'subdomain.example.com';
- [
- hiddenDomainsString,
- diff
- ] = CryptUtils.hideString(domainsString, domainsString.length * 3);
- assert.doesNotThrow(() => getFunctionFromTemplate({
- domainLockFunctionName: 'domainLockFunction',
- diff: diff,
- domains: hiddenDomainsString,
- singleNodeCallControllerFunctionName
- }, singleNodeCallControllerFunctionName, currentDomain));
- });
- it('should throw an error if current domain doesn\'t match with `domainsString`', () => {
- domainsString = ['www.example.com'].join(';');
- currentDomain = 'www.test.com';
- [
- hiddenDomainsString,
- diff
- ] = CryptUtils.hideString(domainsString, domainsString.length * 3);
- assert.throws(() => getFunctionFromTemplate({
- domainLockFunctionName: 'domainLockFunction',
- diff: diff,
- domains: hiddenDomainsString,
- singleNodeCallControllerFunctionName
- }, singleNodeCallControllerFunctionName, currentDomain));
- });
- });
|