/** * @requires javelin-view * javelin-view-interpreter * javelin-view-html * javelin-util */ describe('JX.ViewInterpreter', function() { var html = new JX.ViewInterpreter(); JX.HTMLView.registerToInterpreter(html); it('should allow purty syntax to make a view', function() { var little_view = html.div({}, html.p({className: 'pretty'}, html.span({sigil: 'hook'}, 'Check out ', html.a({href: 'https://fb.com/', rel: '_blank' }, 'Facebook')))); var rendered = JX.ViewRenderer.render(little_view); expect(rendered.tagName).toBe('DIV'); expect(JX.DOM.scry(rendered, 'span', 'hook').length).toBe(1); }); it('should handle no-attr case', function() { /* Coffeescript: * div( * span className: 'some-css-class', ref: 'actorTargetLine' * span className: 'message-css', ref: 'message' * ) * * = javascript: * div(span({ * className: 'some-css-class', * ref: 'actorTargetLine' * }), span({ * className: 'message-css', * ref: 'message' * })); */ var little_view = html.div(html.span({sigil: 'hook'})); var rendered = JX.ViewRenderer.render(little_view); expect(JX.DOM.scry(rendered, 'span', 'hook').length).toBe(1); }); });