UNPKG

2.62 kBJavaScriptView Raw
1"use strict";
2var Xjs = require("./xjs.parser");
3var Parser = require("../lib/boilerplate.view.parser.constructor");
4require("../lib/boilerplate.view.parser.names")(Parser);
5require("../lib/boilerplate.view.parser.parseConverter")(Parser);
6
7describe('Module `boilerplate.view.parser.parseConverter`', function() {
8 describe('no-arg converters', function() {
9 ['array', 'boolean', 'booleans', 'color', 'intl',
10 'isEmpty', 'isNotEmpty', 'keys', 'length', 'list',
11 'multilang', 'not', 'sortedKeys', 'string', 'strings',
12 'unit', 'units', 'validator'].forEach(function (name) {
13 var input = Xjs( `"${name}"` );
14 var parser = new Parser();
15 var result = parser.parseConverter( input );
16 it(`Parser.parseConverter("${name}") should return the converter variable name`, function() {
17 expect( result ).toEqual( `conv_${name}` );
18 });
19 it(`Parser.parseConverter("${name}") should use require("tfw.binding.converters")`, function() {
20 expect( parser.sections.requires.Converters ).toEqual( "require('tfw.binding.converters');" );
21 });
22 it(
23 `Parser.parseConverter("${name}") should add global "var conv_${name} = Converters.get('${name}');"`,
24 function() {
25 expect( parser.sections.converters ).toEqual( [`var conv_${name} = Converters.get('${name}');`] );
26 }
27 );
28 });
29
30 it('should throw an exception for unknown converter ZIZITOP54575', function() {
31 var input = Xjs( '"ZIZITOP54575"' );
32 var parser = new Parser();
33 var result = null;
34 try {
35 result = parser.parseConverter( input );
36 fail("No exception thrown! But we expected one.");
37 }
38 catch( ex ) {
39 expect( result ).toBe( null );
40 }
41 });
42
43 });
44
45 describe('array converters', function() {
46 var input = ["Yes","No"];
47 var parser = new Parser();
48 var result = parser.parseConverter( input );
49 it('should make an enum converter', function() {
50 expect( result ).toBe( "conv_enum1" );
51 });
52 it(`Parser.parseConverter(["Yes","No"]) should use require("tfw.binding.converters")`, function() {
53 expect( parser.sections.requires.Converters ).toEqual( "require('tfw.binding.converters');" );
54 });
55 it(
56 `Parser.parseConverter(["Yes","No"]) should add global "var conv_enum1 = Converters.get('enum')(["Yes","No"]);"`,
57 function() {
58 expect( parser.sections.converters ).toEqual(
59 [`var conv_enum1 = Converters.get('enum')(["Yes","No"]);`]
60 );
61 }
62 );
63 });
64});