UNPKG

alpaca

Version:

Alpaca provides the easiest and fastest way to generate interactive forms for the web and mobile devices. It runs simply as HTML5 or more elaborately using Bootstrap, jQuery Mobile or jQuery UI. Alpaca uses Handlebars to process JSON schema and provide

152 lines (122 loc) 4.09 kB
feature("Backspace Key", function() { story('User presses backspace with cursor to the right of a mask literal',function(){ scenario('character at cursor matches definition to the left',function(){ given("an input with a mask definition of '9-99'", function(){ input .mask("9-99") .mashKeys("123"); }); given("the input has cursor positioned to the right of literal", function(){ input.caret(2); }); when("hitting the backspace key",function(){ input.mashKeys(function(keys){keys.type(keys.backspace)}); }); then("value should be correct",function(){ expect(input).toHaveValue('2-3_'); }); and("caret position should be correct",function(){ expect(input.caret().begin).toEqual(0); }); }); scenario('character at cursor does not match definition to the left',function(){ given("an input with a mask definition of 'a-99'", function(){ input .mask("a-99") .mashKeys("z12"); }); given("the input has cursor positioned to the right of literal", function(){ input.caret(2); }); when("hitting the backspace key",function(){ input.mashKeys(function(keys){keys.type(keys.backspace)}); }); then("value should be correct",function(){ expect(input).toHaveValue('_-12'); }); and("caret position should be correct",function(){ expect(input.caret().begin).toEqual(0); }); }); }); story('User presses backspace with cursor on last character',function(){ scenario('cursor character matches definition to the left',function(){ given("an input with a mask definition of '99'", function(){ input .mask("99") .mashKeys("12"); }); given("the input has cursor positioned on first character", function(){ input.caret(1); }); when("hitting the backspace key",function(){ input.mashKeys(function(keys){keys.type(keys.backspace)}); }); then("value should be correct",function(){ expect(input).toHaveValue('2_'); }); and("caret position should be correct",function(){ expect(input.caret().begin).toEqual(0); }); }); scenario('cursor character does not match definition to the left',function(){ given("an input with a mask definition of '9a'", function(){ input .mask("9a") .mashKeys("1z"); }); given("the input has cursor positioned on first character", function(){ input.caret(1); }); when("hitting the backspace key",function(){ input.mashKeys(function(keys){keys.type(keys.backspace)}); }); then("value should be correct",function(){ expect(input).toHaveValue('_z'); }); and("caret position should be correct",function(){ expect(input.caret().begin).toEqual(0); }); }); describe('There is a mask literal between the two placeholders',function(){ scenario('character at end matches definition of first position',function(){ given("an input with a mask definition of '9-9'", function(){ input .mask("9-9") .mashKeys("12"); }); given("the input has cursor positioned on literal", function(){ input.caret(1); }); when("hitting the backspace key",function(){ input.mashKeys(function(keys){keys.type(keys.backspace)}); }); then("value should be correct",function(){ expect(input).toHaveValue('2-_'); }); and("caret position should be correct",function(){ expect(input.caret().begin).toEqual(0); }); }); scenario('character at end does not match definition of first position',function(){ given("an input with a mask definition of '9-9'", function(){ input .mask("9-a") .mashKeys("1z"); }); given("the input has cursor positioned on literal", function(){ input.caret(1); }); when("hitting the backspace key",function(){ input.mashKeys(function(keys){keys.type(keys.backspace)}); }); then("value should be correct",function(){ expect(input).toHaveValue('_-z'); }); and("caret position should be correct",function(){ expect(input.caret().begin).toEqual(0); }); }); }); }); });