1 | "use strict";
|
2 | var Xjs = require("./xjs.parser");
|
3 | var Parser = require("../lib/boilerplate.view.parser.constructor");
|
4 | require("../lib/boilerplate.view.parser.names")(Parser);
|
5 | require("../lib/boilerplate.view.parser.parseConverter")(Parser);
|
6 |
|
7 | describe('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 | });
|