UNPKG

openrosa-xpath-evaluator

Version:

Wrapper for browsers' XPath evaluator with added support for OpenRosa extensions.

47 lines (42 loc) 1.7 kB
const { assertThrow, assertNumberValue, initDoc } = require('../helpers'); describe('decimal-time()', () => { it('decimates times', () => { assertNumberValue('decimal-time("06:00:00.000-07:00")', 0.25); assertNumberValue('decimal-time("06:00:00.000-01:00")', 0.0); assertNumberValue( 'decimal-time("06:00:59.000-07:00")', 0.25068287037037035 ); assertNumberValue( 'decimal-time("23:59:00.000-07:00")', 0.9993055555555556 ); assertNumberValue( 'decimal-time("23:59:00.000-13:00")', 0.24930555555555556 ); assertNumberValue('decimal-time("a")', NaN); assertNumberValue('decimal-time("24:00:00.000-07:00")', NaN); assertNumberValue('decimal-time("06:00:00.000-24:00")', NaN); assertNumberValue('decimal-time("06:60:00.000-07:00")', NaN); assertNumberValue('decimal-time("06:00:60.000-07:00")', NaN); assertNumberValue('decimal-time("23:59:00.000-07:60")', NaN); assertNumberValue('decimal-time("now()")', NaN); }); it('should convert times provided with a node parameter', () => { const doc = initDoc(` <data> <a>06:00:00.000-07:00</a> </data>`); assertNumberValue(doc, null, 'decimal-time( /data/a )', 0.25); }); it('facilitates time calculations and evaluates', () => { assertNumberValue( 'decimal-time("12:00:00.000-07:00") - decimal-time("06:00:00.000-07:00")', 0.25 ); }); it('with invalid args throws an error', () => { assertThrow('decimal-time("06:00:00.000-07:00", 2)'); }); });