More tests for amounts validation

This commit is contained in:
Gustavo Cortez 2014-06-25 17:10:00 -03:00
parent f379ee95c0
commit c669fc2d17
2 changed files with 89 additions and 31 deletions

View File

@ -8,6 +8,10 @@ describe("Unit: Testing Directives", function() {
beforeEach(module('copayApp.directives')); beforeEach(module('copayApp.directives'));
beforeEach(function() {
config.unitToSatoshi = 100;
config.unitName = 'bits';
});
describe('Check config', function() { describe('Check config', function() {
it('unit should be set to BITS in config.js', function() { it('unit should be set to BITS in config.js', function() {
@ -43,41 +47,89 @@ describe("Unit: Testing Directives", function() {
}); });
describe('Validate Amount', function() { describe('Validate Amount', function() {
beforeEach(inject(function($compile, $rootScope) { describe('Unit: bits', function() {
$scope = $rootScope; beforeEach(inject(function($compile, $rootScope) {
$rootScope.availableBalance = 1000; $scope = $rootScope;
var element = angular.element( $rootScope.availableBalance = 1000;
'<form name="form">' + var element = angular.element(
'<input type="number" id="amount" name="amount" placeholder="Amount" ng-model="amount" min="0.0001" max="10000000" enough-amount required>' + '<form name="form">' +
'</form>' '<input type="number" id="amount" name="amount" placeholder="Amount" ng-model="amount" min="0.0001" max="10000000" enough-amount required>' +
); '</form>'
$scope.model = { );
amount: null $scope.model = {
}; amount: null
$compile(element)($scope); };
$scope.$digest(); $compile(element)($scope);
form = $scope.form; $scope.$digest();
})); form = $scope.form;
}));
it('should validate', function() {
form.amount.$setViewValue(100);
expect(form.amount.$invalid).to.equal(false);
form.amount.$setViewValue(800);
expect(form.amount.$invalid).to.equal(false);
form.amount.$setViewValue(900);
expect($scope.notEnoughAmount).to.equal(null);
});
it('should not validate', function() {
form.amount.$setViewValue(0);
it('should validate', function() { expect(form.amount.$invalid).to.equal(true);
form.amount.$setViewValue(100); form.amount.$setViewValue(9999999999);
expect(form.amount.$invalid).to.equal(false); expect(form.amount.$invalid).to.equal(true);
form.amount.$setViewValue(900); form.amount.$setViewValue(901);
expect(form.amount.$invalid).to.equal(false); expect(form.amount.$invalid).to.equal(true);
form.amount.$setViewValue(1000);
expect(form.amount.$invalid).to.equal(true);
form.amount.$setViewValue(901);
expect($scope.notEnoughAmount).to.equal(true);
});
}); });
it('should not validate', function() { describe('Unit: BTC', function() {
form.amount.$setViewValue(0); beforeEach(inject(function($compile, $rootScope) {
expect(form.amount.$invalid).to.equal(true); config.unitToSatoshi = 100000000;
form.amount.$setViewValue(9999999999); config.unitName = 'BTC';
expect(form.amount.$invalid).to.equal(true); $scope = $rootScope;
form.amount.$setViewValue(901); $rootScope.availableBalance = 0.04;
expect(form.amount.$invalid).to.equal(true); var element = angular.element(
form.amount.$setViewValue(1000); '<form name="form">' +
expect(form.amount.$invalid).to.equal(true); '<input type="number" id="amount" name="amount" placeholder="Amount" ng-model="amount" min="0.0001" max="10000000" enough-amount required>' +
'</form>'
);
$scope.model = {
amount: null
};
$compile(element)($scope);
$scope.$digest();
form = $scope.form;
}));
it('should validate', function() {
form.amount.$setViewValue(0.01);
expect($scope.notEnoughAmount).to.equal(null);
expect(form.amount.$invalid).to.equal(false);
form.amount.$setViewValue(0.039);
expect($scope.notEnoughAmount).to.equal(null);
expect(form.amount.$invalid).to.equal(false);
});
it('should not validate', function() {
form.amount.$setViewValue(0.03999);
expect($scope.notEnoughAmount).to.equal(true);
expect(form.amount.$invalid).to.equal(true);
form.amount.$setViewValue(0);
expect(form.amount.$invalid).to.equal(true);
form.amount.$setViewValue(0.0);
expect(form.amount.$invalid).to.equal(true);
form.amount.$setViewValue(0.05);
expect($scope.notEnoughAmount).to.equal(true);
expect(form.amount.$invalid).to.equal(true);
});
}); });
}); });
describe('Contact directive', function() { describe('Contact directive', function() {

View File

@ -5,7 +5,13 @@
// //
var sinon = require('sinon'); var sinon = require('sinon');
beforeEach(function() {
config.unitToSatoshi = 100;
config.unitName = 'bits';
});
describe('Check config', function() { describe('Check config', function() {
it('unit should be set to BITS in config.js', function() { it('unit should be set to BITS in config.js', function() {
expect(config.unitToSatoshi).to.equal(100); expect(config.unitToSatoshi).to.equal(100);
expect(config.unitName).to.equal('bits'); expect(config.unitName).to.equal('bits');