Added form to smart table
diff --git a/views/ngXosLib/xosHelpers/spec/ui/smart-table.test.js b/views/ngXosLib/xosHelpers/spec/ui/smart-table.test.js
index e8cc030..bcc34e1 100644
--- a/views/ngXosLib/xosHelpers/spec/ui/smart-table.test.js
+++ b/views/ngXosLib/xosHelpers/spec/ui/smart-table.test.js
@@ -30,6 +30,9 @@
this.query = jasmine.createSpy('query').and.callFake(() => {
return {$promise: {then: (cb) => cb(mockData)}};
});
+ this.delete = jasmine.createSpy('delete').and.callFake(() => {
+ return {$promise: {then: (cb) => cb({})}};
+ });
});
$provide.service('EmptyResource', function(){
@@ -62,9 +65,40 @@
});
it('should hide hidden fields', () => {
- expect($(element).find('thead th').length).toEqual(2);
+ // the 4th field is the mocked save method
+ expect($(element).find('thead th').length).toEqual(3);
expect($(element).find('thead th')[0]).toContainText('First name:');
expect($(element).find('thead th')[1]).toContainText('Last name:');
+ expect($(element).find('thead th')[2]).toContainText('Actions:');
+ });
+
+ it('should delete a model', () => {
+ $(element).find('a[title="delete"]')[0].click();
+ expect(spy.delete).toHaveBeenCalledWith({id: mockData[0].id});
+ expect($(element).find('.alert')).toContainText(`MockResource with id ${mockData[0].id} successfully deleted`);
+ });
+
+ it('should show the form', () => {
+ expect($(element).find('.panel')[0]).toHaveClass('ng-hide');
+ $(element).find('a[title="details"]')[0].click();
+ expect($(element).find('.panel')).not.toHaveClass('ng-hide');
+ });
+
+ it('should save an item', () => {
+ const saveMethod = jasmine.createSpy('$save').and.callFake(() => {
+ return {then: (cb) => cb(mockData[0])};
+ });
+ let model = {
+ id: 1,
+ first_name: 'Jon',
+ last_name: 'Snow',
+ hidden_field: 'hidden',
+ $save: saveMethod
+ };
+ isolatedScope.detailedItem = model;
+ scope.$apply();
+ $(element).find('xos-form .btn.btn-success').click();
+ expect(saveMethod).toHaveBeenCalled();
});
describe('when fetching an empty collection', () => {