inlines.test.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /* global module, test */
  2. /* eslint global-strict: 0, strict: 0 */
  3. 'use strict';
  4. module('admin.inlines: tabular formsets', {
  5. beforeEach: function() {
  6. var $ = django.jQuery;
  7. var that = this;
  8. this.addText = 'Add another';
  9. $('#qunit-fixture').append($('#tabular-formset').text());
  10. this.table = $('table.inline');
  11. this.inlineRow = this.table.find('tr');
  12. that.inlineRow.tabularFormset({
  13. prefix: 'first',
  14. addText: that.addText,
  15. deleteText: 'Remove'
  16. });
  17. }
  18. });
  19. test('no forms', function(assert) {
  20. assert.ok(this.inlineRow.hasClass('dynamic-first'));
  21. assert.equal(this.table.find('.add-row a').text(), this.addText);
  22. });
  23. test('add form', function(assert) {
  24. var addButton = this.table.find('.add-row a');
  25. assert.equal(addButton.text(), this.addText);
  26. addButton.click();
  27. assert.ok(this.table.find('#first-1').hasClass('row2'));
  28. });
  29. test('add/remove form events', function(assert) {
  30. assert.expect(6);
  31. var $ = django.jQuery;
  32. var $document = $(document);
  33. var addButton = this.table.find('.add-row a');
  34. $document.on('formset:added', function(event, $row, formsetName) {
  35. assert.ok(true, 'event `formset:added` triggered');
  36. assert.equal(true, $row.is($('.row2')));
  37. assert.equal(formsetName, 'first');
  38. });
  39. addButton.click();
  40. var deletedRow = $('.row2');
  41. var deleteLink = this.table.find('.inline-deletelink');
  42. $document.on('formset:removed', function(event, $row, formsetName) {
  43. assert.ok(true, 'event `formset:removed` triggered');
  44. assert.equal(true, $row.is(deletedRow));
  45. assert.equal(formsetName, 'first');
  46. });
  47. deleteLink.click();
  48. });