mirror of
https://github.com/EDCD/coriolis.git
synced 2025-12-09 06:43:24 +00:00
Improve comparison import validation
This commit is contained in:
@@ -52,7 +52,15 @@ angular.module('app').controller('ImportController', ['lodash', '$rootScope', '$
|
|||||||
throw 'builds must be an object!';
|
throw 'builds must be an object!';
|
||||||
}
|
}
|
||||||
if (importData.comparisons) {
|
if (importData.comparisons) {
|
||||||
// TODO: check ship/builds exist for comparison
|
for (var compName in importData.comparisons) {
|
||||||
|
var comparison = importData.comparisons[compName];
|
||||||
|
for (var i = 0, l = comparison.builds.length; i < l; i++) {
|
||||||
|
var build = comparison.builds[i];
|
||||||
|
if (!importData.builds[build.shipId] || !importData.builds[build.shipId][build.buildName]) {
|
||||||
|
throw build.shipId + ' build "' + build.buildName + '" data is missing!';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
$scope.comparisons = importData.comparisons;
|
$scope.comparisons = importData.comparisons;
|
||||||
}
|
}
|
||||||
if (importData.discounts instanceof Array && importData.discounts.length == 2) {
|
if (importData.discounts instanceof Array && importData.discounts.length == 2) {
|
||||||
|
|||||||
@@ -85,6 +85,13 @@ describe('Import Controller', function() {
|
|||||||
expect(scope.jsonValid).toBeFalsy();
|
expect(scope.jsonValid).toBeFalsy();
|
||||||
expect(scope.errorMsg).toEqual('Imperial Clipper build "" must be a string at least 3 characters long!');
|
expect(scope.errorMsg).toEqual('Imperial Clipper build "" must be a string at least 3 characters long!');
|
||||||
|
|
||||||
|
invalidImportData = angular.copy(importData);
|
||||||
|
invalidImportData.builds.asp = null; // Remove Asp Miner build used in comparison
|
||||||
|
scope.importJSON = angular.toJson(invalidImportData);
|
||||||
|
scope.validateJson();
|
||||||
|
expect(scope.jsonValid).toBeFalsy();
|
||||||
|
expect(scope.errorMsg).toEqual('asp build "Miner" data is missing!');
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user