UNPKG

angular-mask

Version:
101 lines (77 loc) 3.4 kB
var StringMask = require('string-mask'); describe('ui.utils.masks.money', function() { beforeEach(function() { browser.get('/demo'); }); it('should load the demo page', function() { expect(browser.getTitle()).toEqual('Angular Mask Demo'); }); describe('ui-money-mask:', function() { it('should format money with two decimal places (default)', function() { var formatterView = new StringMask('#.##0,00', {reverse: true}), formatterModel = new StringMask('###0.00', {reverse: true}), numberToFormat = '', currency = 'R$ ', formatedNumberAsString, formatedNumberAsNumber; var input = element(by.model('defaultMoney')), value = element(by.binding('defaultMoney')); expect(input.getAttribute('value')).toEqual(currency+'15.312,00'); input.clear(); for (var i = 1; i <= 9; i++) { input.sendKeys(i); numberToFormat += i; formatedNumberAsString = formatterView.apply(numberToFormat); expect(input.getAttribute('value')).toEqual(currency + formatedNumberAsString); formatedNumberAsNumber = formatterModel.apply(numberToFormat); expect(value.getText()).toEqual(formatedNumberAsNumber); } for (var i = 9; i >= 1; i--) { input.sendKeys(protractor.Key.BACK_SPACE); numberToFormat = numberToFormat.slice(0, -1); if(!numberToFormat) { numberToFormat = '0'; }else{ formatedNumberAsNumber = formatterModel.apply(numberToFormat); expect(value.getText()).toEqual(formatedNumberAsNumber); } formatedNumberAsString = formatterView.apply(numberToFormat); expect(input.getAttribute('value')).toEqual(currency + formatedNumberAsString); } }); it('should format a field with 0 as the initial value', function() { var currency = 'R$ '; var input = element(by.model('moneyStartedWith0')); expect(input.getAttribute('value')).toEqual(currency+'0,00'); }); it('should format a field with an initial value with string type', function() { var currency = 'R$ '; var input = element(by.model('moneyInitializedWithString')); expect(input.getAttribute('value')).toEqual(currency+'3,53'); }); it('should format money with three decimal places (parameter)', function() { var formatterView = new StringMask('#.##0,000', {reverse: true}), formatterModel = new StringMask('###0.000', {reverse: true}), numberToFormat = '', currency = 'R$ ', formatedNumberAsString, formatedNumberAsNumber; var input = element(by.model('money3Decimals')), value = element(by.binding('money3Decimals')); for (var i = 1; i <= 9; i++) { input.sendKeys(i); numberToFormat += i; formatedNumberAsString = formatterView.apply(numberToFormat); expect(input.getAttribute('value')).toEqual(currency + formatedNumberAsString); formatedNumberAsNumber = formatterModel.apply(numberToFormat); expect(value.getText()).toEqual(formatedNumberAsNumber); } for (var i = 9; i >= 1; i--) { input.sendKeys(protractor.Key.BACK_SPACE); numberToFormat = numberToFormat.slice(0, -1); if(!numberToFormat) { numberToFormat = '0'; }else{ formatedNumberAsNumber = formatterModel.apply(numberToFormat); expect(value.getText()).toEqual(formatedNumberAsNumber); } formatedNumberAsString = formatterView.apply(numberToFormat); expect(input.getAttribute('value')).toEqual(currency + formatedNumberAsString); } }); }); });