aboutsummaryrefslogtreecommitdiffstats
path: root/test/widgetsSpec.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/widgetsSpec.js')
-rw-r--r--test/widgetsSpec.js68
1 files changed, 62 insertions, 6 deletions
diff --git a/test/widgetsSpec.js b/test/widgetsSpec.js
index 3b6be8ec..da9d5f9b 100644
--- a/test/widgetsSpec.js
+++ b/test/widgetsSpec.js
@@ -1,4 +1,4 @@
-describe("widgets", function(){
+describe("input widget", function(){
var compile, element, scope;
@@ -15,14 +15,70 @@ describe("widgets", function(){
});
afterEach(function(){
- if (element) {
- element.remove();
- }
+ if (element) element.remove();
expect(_(jqCache).size()).toEqual(0);
});
- it('should fail', function(){
- fail('iueoi');
+ it('should input-text auto init and handle keyup/change events', function(){
+ compile('<input type="Text" name="name" value="Misko"/>');
+ expect(scope.get('name')).toEqual("Misko");
+
+ scope.set('name', 'Adam');
+ scope.updateView();
+ expect(element.attr('value')).toEqual("Adam");
+
+ element.attr('value', 'Shyam');
+ element.trigger('keyup');
+ expect(scope.get('name')).toEqual('Shyam');
+
+ element.attr('value', 'Kai');
+ element.trigger('change');
+ expect(scope.get('name')).toEqual('Kai');
+ });
+
+ it("should process ng-format", function(){
+ compile('<input type="Text" name="list" value="a,b,c" ng-format="list"/>');
+ expect(scope.get('list')).toEqual(['a', 'b', 'c']);
+
+ scope.set('list', ['x', 'y', 'z']);
+ scope.updateView();
+ expect(element.attr('value')).toEqual("x, y, z");
+
+ element.attr('value', '1, 2, 3');
+ element.trigger('keyup');
+ expect(scope.get('list')).toEqual(['1', '2', '3']);
+ });
+
+ it("should process ng-validation", function(){
+ compile('<input type="text" name="price" value="abc" ng-validate="number"/>');
+ expect(element.hasClass('ng-validation-error')).toBeTruthy();
+ expect(element.attr('ng-error')).toEqual('Not a number');
+
+ scope.set('price', '123');
+ scope.updateView();
+ expect(element.hasClass('ng-validation-error')).toBeFalsy();
+ expect(element.attr('ng-error')).toBeFalsy();
+
+ element.attr('value', 'x');
+ element.trigger('keyup');
+ expect(element.hasClass('ng-validation-error')).toBeTruthy();
+ expect(element.attr('ng-error')).toEqual('Not a number');
+ });
+
+ it("should process ng-required", function(){
+ compile('<input type="text" name="price" ng-required/>');
+ expect(element.hasClass('ng-validation-error')).toBeTruthy();
+ expect(element.attr('ng-error')).toEqual('Required');
+
+ scope.set('price', 'xxx');
+ scope.updateView();
+ expect(element.hasClass('ng-validation-error')).toBeFalsy();
+ expect(element.attr('ng-error')).toBeFalsy();
+
+ element.attr('value', '');
+ element.trigger('keyup');
+ expect(element.hasClass('ng-validation-error')).toBeTruthy();
+ expect(element.attr('ng-error')).toEqual('Required');
});
});