@eluvio/elv-js-helpers
Version:
A collection of Javascript helper functions used by several Eluvio libraries.
28 lines (26 loc) • 1.4 kB
JavaScript
// AUTO-GENERATED TEST - DO NOT MODIFY, CHANGES WILL BE OVERWRITTEN DURING BUILD
const TH = require('../../../test-helpers')
const validatePropName = TH.requireSrcFile('Validation/validatePropName')
describe('validatePropName JSDoc example', () => {
it('should execute correctly as described', () => {
'use strict'
const resultToPOJO = TH.requireSrcFile('Conversion/ResultToPOJO')
const myObj = {foo: 1, bar: 2}
const goodResult = validatePropName(myObj, 'foo')
goodResult.inspect().should.eql('Ok "foo"')
resultToPOJO(goodResult).ok.should.eql(true)
resultToPOJO(goodResult).value.should.eql('foo')
const errBadFieldName = validatePropName(myObj, 'baz')
resultToPOJO(errBadFieldName).ok.should.eql(false)
resultToPOJO(errBadFieldName).errMsgs.should.eql(['property "baz" not found'])
const errNonObject = validatePropName(null, 'foo')
resultToPOJO(errNonObject).ok.should.eql(false)
resultToPOJO(errNonObject).errMsgs.should.eql(['Expecting object, got null'])
// function is curried, call with just 1 argument to return a more specific validation function
const validateNameForMyObject = validatePropName(myObj)
validateNameForMyObject('bar').inspect().should.eql('Ok "bar"')
resultToPOJO(validateNameForMyObject(0)).ok.should.eql(false)
resultToPOJO(validateNameForMyObject('baz')).ok.should.eql(false)
})
})