diff --git a/test/11-custom_elements.js b/test/11-custom_elements.js index b0ff08d..c0439ae 100644 --- a/test/11-custom_elements.js +++ b/test/11-custom_elements.js @@ -3,6 +3,8 @@ var assert = require('assert'), hawkejs, test_id = 0; +const Blast = __Protoblast; + describe('CustomElement', function() { before(function() { @@ -271,53 +273,36 @@ describe('CustomElement', function() { }); describe('.setAttribute(name)', function() { - it('should add an attribute that is also accessible via a getter/setter', function(done) { + it('should add an attribute that is also accessible via a getter/setter', async function() { - var code = ` + let code = ` <% el = create_element('he-test') %> <% el.testval = "bla" %> <%= el %> `; - var compiled = hawkejs.compile('he_test_1', code); - - hawkejs.render(compiled, {}, function rendered(err, res) { - - if (err) { - throw err; - } + let compiled = hawkejs.compile('he_test_1', code); - res = res.trim(); + let result = await renderWithPledge(compiled); - assertEqualHtml(res, ''); - done(); - }); + assertEqualHtml(result.html, ''); }); }); describe('.setAssignedProperty(name)', function() { - it('should execute the special assigned function', function(done) { + it('should execute the special assigned function', async function() { - var code = `
<% + let code = `
<% at = createElement('assign-test'); at.stopped = "test"; at.title = "Bla"; print(at); %>
`; - var compiled = hawkejs.compile('he_test_2', code); + let compiled = hawkejs.compile('he_test_2', code); - hawkejs.render(compiled, {}, function rendered(err, res) { - - if (err) { - throw err; - } - - res = res.trim(); - - assertEqualHtml(res, '
Bla
'); - done(); - }); + let result = await renderWithPledge(compiled); + assertEqualHtml(result.html, '
Bla
'); }); it('should revive the assigned data when sent to the browser', async function() { @@ -376,28 +361,14 @@ describe('CustomElement', function() { }); describe('.setTemplate(source, is_plain_html)', function() { - it('should set the template to render the contents', function(done) { - - setTimeout(function() { - - var code = `NOPE`; - - var compiled = hawkejs.compile('template_test_2', code); - - hawkejs.render(compiled, {}, function rendered(err, res) { + it('should set the template to render the contents', async function() { - if (err) { - throw err; - } - - res = res.trim(); + let code = `NOPE`; - assertEqualHtml(res, 'This is a test!!This is a test!!'); + let compiled = hawkejs.compile('template_test_2', code); - done(); - }); - - }, 4); + let result = await renderWithPledge(compiled); + assertEqualHtml(result.html, 'This is a test!!This is a test!!'); }); it('should load the stylesheets of custom elements created in the sync template', async function() { @@ -504,113 +475,72 @@ describe('CustomElement', function() { }); describe('.setTemplateFile(path)', function() { - it('should set the template to use for the content of the element', function(done) { + it('should set the template to use for the content of the element', async function() { - var TemplateTest = __Protoblast.Bound.Function.inherits('Hawkejs.Element', function TemplateTest() { + let TemplateTest = __Protoblast.Bound.Function.inherits('Hawkejs.Element', function TemplateTest() { return TemplateTest.super.call(this); }); TemplateTest.setTemplateFile('partials/template_test'); - setTimeout(function() { + await Blast.Classes.Pledge.after(4); - var code = ``; + let code = ``; - var compiled = hawkejs.compile('template_test_1', code); + let compiled = hawkejs.compile('template_test_1', code); - hawkejs.render(compiled, {}, function rendered(err, res) { - - if (err) { - throw err; - } - - res = res.trim(); - - assertEqualHtml(res, 'This is the content of template-test'); - done(); - }); - - }, 4); + let result = await renderWithPledge(compiled); + assertEqualHtml(result.html, 'This is the content of template-test'); }); - it('should allow the usage of slots', function(done) { + it('should allow the usage of slots', async function() { - var TemplateSlotTest = __Protoblast.Bound.Function.inherits('Hawkejs.Element', function TemplateSlotTest() { + let TemplateSlotTest = __Protoblast.Bound.Function.inherits('Hawkejs.Element', function TemplateSlotTest() { return TemplateSlotTest.super.call(this); }); TemplateSlotTest.setTemplateFile('partials/template_slot_test'); - setTimeout(function() { + await Blast.Classes.Pledge.after(4); - var code = ` + let code = `
This will set the content of the main slot
`; - var compiled = hawkejs.compile('template_test_2', code); + let compiled = hawkejs.compile('template_test_2', code); - hawkejs.render(compiled, {}, function rendered(err, res) { + let result = await renderWithPledge(compiled); - if (err) { - throw err; - } - - res = res.trim(); - - assertEqualHtml(res, '
This will set the content of the main slot
'); - done(); - }); - - }, 4); + assertEqualHtml(result.html, '
This will set the content of the main slot
'); }); - it('should not confuse slots with similar elements', function(done) { + it('should not confuse slots with similar elements', async function() { - var code = ` + let code = `
Slot test 1
Slot test 2
`; - var compiled = hawkejs.compile('template_test_3', code); + let compiled = hawkejs.compile('template_test_3', code); - hawkejs.render(compiled, {}, function rendered(err, res) { - - if (err) { - throw err; - } + let result = await renderWithPledge(compiled); - res = res.trim(); - - assertEqualHtml(res, '
Slot test 1
\n
Slot test 2
'); - done(); - }); + assertEqualHtml(result.html, '
Slot test 1
\n
Slot test 2
'); }); - it('should render the contents after the attributes have been set', function(done) { + it('should render the contents after the attributes have been set', async function() { let code = ` `; - var compiled = hawkejs.compile('template_test_4', code); + let compiled = hawkejs.compile('template_test_4', code); - hawkejs.render(compiled, {}, function rendered(err, res) { - - if (err) { - throw err; - } + let result = await renderWithPledge(compiled); - res = res.trim(); - - try { - assertEqualHtml(res, 'pretty-title'); - } catch (err) { - return done(err); - } - done(); - }); + assertEqualHtml(result.html, 'pretty-title'); }); it('should render the contents after the attributes have been set (within extensions)', async function() { @@ -628,35 +558,21 @@ describe('CustomElement', function() { assert.strictEqual(data.html.indexOf('>pretty-title') > -1, true); }); - it('should set the corrent $0 variable inside the template', function(done) { + it('should set the corrent $0 variable inside the template', async function() { let code = `
`; - var compiled = hawkejs.compile('template_parent-element-test', code); - - hawkejs.render(compiled, {}, function rendered(err, res) { - - if (err) { - throw err; - } - - res = res.trim(); - - try { - assertEqualHtml(res, ` - Self: PARENT-ELEMENT-SYNC-TEST - Parent: SPAN -
Self: PARENT-ELEMENT-ASYNC-TEST - Parent: DIV
- `); - } catch (err) { - return done(err); - } - done(); - }); + let compiled = hawkejs.compile('template_parent-element-test', code); + let result = await renderWithPledge(compiled); + assertEqualHtml(result.html, ` + Self: PARENT-ELEMENT-SYNC-TEST - Parent: SPAN +
Self: PARENT-ELEMENT-ASYNC-TEST - Parent: DIV
+ `); }); }); @@ -685,30 +601,16 @@ describe('CustomElement', function() { }); describe('#rendered()', () => { - it('should call back when the element has been rendered', (done) => { + it('should call back when the element has been rendered', async () => { let code = ` `; - var compiled = hawkejs.compile('template_test_rendered_counter', code); - - hawkejs.render(compiled, {}, function rendered(err, res) { - - if (err) { - throw err; - } - - res = res.trim(); - - try { - assertEqualHtml(res, ''); - } catch (err) { - return done(err); - } - done(); - }); + let compiled = hawkejs.compile('template_test_rendered_counter', code); + let result = await renderWithPledge(compiled); + assertEqualHtml(result.html, ''); }); });