You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							86 lines
						
					
					
						
							2.1 KiB
						
					
					
				
			
		
		
	
	
							86 lines
						
					
					
						
							2.1 KiB
						
					
					
				"use strict";
 | 
						|
 | 
						|
var _chai = require("chai");
 | 
						|
 | 
						|
var _buildFeature = require("../build-feature");
 | 
						|
 | 
						|
/* eslint-disable @typescript-eslint/no-empty-function */
 | 
						|
describe('mergeResourceOptions', function () {
 | 
						|
  it('chaines before hooks', function () {
 | 
						|
    const existingOptions = {
 | 
						|
      actions: {
 | 
						|
        new: {
 | 
						|
          before: function firstBeforeHook() {},
 | 
						|
          handler: null
 | 
						|
        },
 | 
						|
        edit: {
 | 
						|
          after: [function firstAfterHook() {}]
 | 
						|
        }
 | 
						|
      }
 | 
						|
    };
 | 
						|
    const newOptions = {
 | 
						|
      actions: {
 | 
						|
        new: {
 | 
						|
          before: function lastBeforeHook() {},
 | 
						|
          handler: function lastHandler() {}
 | 
						|
        },
 | 
						|
        edit: {
 | 
						|
          after: function lastAfterHook() {}
 | 
						|
        },
 | 
						|
        newAction: {
 | 
						|
          handler: function newHandler() {}
 | 
						|
        }
 | 
						|
      }
 | 
						|
    };
 | 
						|
    (0, _chai.expect)((0, _buildFeature.mergeResourceOptions)(existingOptions, newOptions)).to.deep.eq({
 | 
						|
      actions: {
 | 
						|
        new: {
 | 
						|
          before: [existingOptions.actions.new.before, newOptions.actions.new.before],
 | 
						|
          handler: [newOptions.actions.new.handler]
 | 
						|
        },
 | 
						|
        edit: {
 | 
						|
          after: [existingOptions.actions.edit.after[0], newOptions.actions.edit.after]
 | 
						|
        },
 | 
						|
        newAction: {
 | 
						|
          handler: [newOptions.actions.newAction.handler]
 | 
						|
        }
 | 
						|
      }
 | 
						|
    });
 | 
						|
  });
 | 
						|
  it('chaines properties', function () {
 | 
						|
    const existingOptions = {
 | 
						|
      properties: {
 | 
						|
        password: {
 | 
						|
          isVisible: true,
 | 
						|
          component: 'ala'
 | 
						|
        }
 | 
						|
      }
 | 
						|
    };
 | 
						|
    const newOptions = {
 | 
						|
      properties: {
 | 
						|
        password2: {
 | 
						|
          isVisible: false,
 | 
						|
          component: 'ela'
 | 
						|
        }
 | 
						|
      }
 | 
						|
    };
 | 
						|
    (0, _chai.expect)((0, _buildFeature.mergeResourceOptions)(existingOptions, newOptions)).to.deep.eq({
 | 
						|
      properties: { ...existingOptions.properties,
 | 
						|
        ...newOptions.properties
 | 
						|
      }
 | 
						|
    });
 | 
						|
  });
 | 
						|
  it('merges falsey options', function () {
 | 
						|
    const existingOptions = {
 | 
						|
      navigation: {
 | 
						|
        name: 'db'
 | 
						|
      }
 | 
						|
    };
 | 
						|
    const newOptions = {
 | 
						|
      navigation: false
 | 
						|
    };
 | 
						|
    (0, _chai.expect)((0, _buildFeature.mergeResourceOptions)(existingOptions, newOptions)).to.deep.eq({
 | 
						|
      navigation: false
 | 
						|
    });
 | 
						|
  });
 | 
						|
}); |