jquery-tmpl icon indicating copy to clipboard operation
jquery-tmpl copied to clipboard

Unit tests

Open paulirish opened this issue 14 years ago • 6 comments

jquery-tmpl is in dire need of unit tests.

They should likely use QUnit and be available in this repo.

paulirish avatar Nov 22 '10 17:11 paulirish

Yes, that is the plan. We obviously will not move from beta to rtm without first adding unit tests.

BorisMoore avatar Nov 22 '10 18:11 BorisMoore

A good bunch of tests, salvaged from previous work by borgar and shellscape, is now commited: https://github.com/jquery/jquery-tmpl/commit/6a353f44f12e33764f9490e1b63bda600c7a1953

jzaefferer avatar Dec 29 '10 13:12 jzaefferer

Open issues:

  • whitespace handling: disabled most tests that deal with input and output whitespace. Output is currently restricted as I'm using jQuery's text() method to get back at the text from Text nodes. This messes whitespace up to some extend. Considering the plan to seperate template rendering from DOM insertion, I'd say we adapt those tests to work against the plain rendering once in place. That should also fix most tests that cover whitespace within input - with the output mangling, these tests fail for now.
  • There were tests for an empty {{}} tag, with and without whitespace inbetween. The with-whitespace-empty-tag currently fails with a Template not found: " " error message. Which is probably fine.
  • Two tests (line 97 and 98 in tests/core.js) for disallowed operations fail: ${ new Object() } and ${ delete a }, while they are expected to throw a SyntaxError, like all the other disallowed operations
  • I can't currently test any html escaping, as that gets messed up when using the .text() method to extract text from the Text nodes
  • Some tests for comments fail, involving some weird constructs, starting with line 139 in tests/core.js. Not sure if we need to support these.
  • If nested lookups on undefined objects are supposed to fail silently, then thats broken currently.
  • Disallowed operations tests all fail to fail, e.g. having ${ a += 1 }. Dunno if that is supposed to work or fail.
  • {{each}} on object (instead of array) fails with an Unexpected end of input error.
  • There were tests for nesting {{tmpl}} within {{each}} and then using the loops $index within the template. Fails currently, not sure if that is supposed to work.

jzaefferer avatar Dec 30 '10 12:12 jzaefferer

Thanks for this work and for the detailed status, Jorn.

BorisMoore avatar Jan 05 '11 01:01 BorisMoore

It has been agreed with the jQuery team that unit tests will be added subsequently to Beta2, since there are quite a few API changes expected for Beta2. Unit tests must be completed before releasing V1.

See also http://bugs.jquery.com/ticket/7595, which has been resolved as a dup of this...

BorisMoore avatar Mar 01 '11 19:03 BorisMoore

Thanks for taking the time to submit this issue. Just wanted to let you know this plugin is no longer being actively developed or maintained by the jQuery team. See README for more info.

rdworth avatar Oct 08 '11 06:10 rdworth