node-deadline
Version:
Module to interface with Deadline Compute Management System by Thinkbox Software
33 lines (27 loc) • 1.25 kB
JavaScript
/*jshint jasmine: true*/
var PropertyMap = require( "../lib/utils/PropertyMap" );
describe( "property map functionality", function() {
it( "should properly split and drill into an object", function() {
var obj = { layer1: { layer2: "value" } },
prop = "layer1.layer2";
expect( PropertyMap.readProp( obj, prop ) ).toBe( "value" );
PropertyMap.writeProp( obj, "layer1.layer2", "value2" );
expect( PropertyMap.readProp( obj, prop ) ).toBe( "value2" );
} );
it( "should properly convert single depth property values", function() {
var mapped, map = new PropertyMap( { endProp: "startProp" } );
mapped = map.mapObj( { startProp: null } );
expect( mapped.endProp ).toBe( null );
} );
it( "should properly convert multiple-depth property values", function() {
var mapped, map = new PropertyMap( { "val": "l1.l2.l3" } );
mapped = map.mapObj( { l1: { l2: { l3: null } } } );
expect( mapped.val ).toBe( null );
} );
it( "should properly unmap a mapped object", function() {
var orig, mapped, map = new PropertyMap( { "val": "l1.l2.l3" } );
mapped = map.mapObj( { l1: { l2: { l3: null } } } );
orig = map.unmapObj( mapped );
expect( orig.l1.l2.l3 ).toBe( null );
} );
} );