Security fixes (#32)

* Generic Object Injection Sink

* (fix) "Character" is not defined.

* added eslint

* improve code quality, use refactored function

* (fix) eslint jest

* "Character" is not defined

* removed unused file Compare.js

* (fix) PointsUsed is not defined

* (fix) eslint moans jsconfig

* turn off "no-prototype-builtins"

* push code coverage
This commit is contained in:
2021-05-01 20:13:15 +02:00
committed by GitHub
parent 63bd06e92f
commit d45e4faad6
20 changed files with 413 additions and 261 deletions

View File

@ -1,15 +1,9 @@
const CalculateQuality = (PointsAvailable = 0) => {
if (PointsAvailable <= 3)
return 1;
else if (PointsAvailable > 3 && PointsAvailable <= 6)
return 2;
else if (PointsAvailable > 6 && PointsAvailable <= 9)
return 3;
else if (PointsAvailable > 9 && PointsAvailable <= 12)
return 4;
else if (PointsAvailable > 12 && PointsAvailable <= 15)
return 5;
else if (PointsAvailable > 15)
return 6;
if (PointsAvailable <= 3) return 1;
else if (PointsAvailable > 3 && PointsAvailable <= 6) return 2;
else if (PointsAvailable > 6 && PointsAvailable <= 9) return 3;
else if (PointsAvailable > 9 && PointsAvailable <= 12) return 4;
else if (PointsAvailable > 12 && PointsAvailable <= 15) return 5;
else return 6;
};
module.exports = { CalculateQuality };

View File

@ -1,6 +0,0 @@
const Compare = () => {
return { result };
};
module.exports = { Compare };

View File

@ -18,28 +18,28 @@ const CompareResults = (
let CriticalHit = 0;
let AllPointsUsed = [];
for (let i = 0; i < Throws.length; i++) {
Throws.forEach((Throw, key) => {
let PointsUsed = 0;
if (Math.floor(AttributeLevels[i] + Bonus) >= Throws[i]) {
let AttributeLevel = AttributeLevels.find((v, k) => key === k);
if (Math.floor(AttributeLevel + Bonus) >= Throw) {
Passed++;
} else if (Math.floor(AttributeLevels[i] + PointsRemaining + Bonus) >= Throws[i]) {
} else if (Math.floor(AttributeLevel + PointsRemaining + Bonus) >= Throw) {
Passed++;
PointsUsed = Throws[i] - Bonus - AttributeLevels[i];
PointsUsed = Throw - Bonus - AttributeLevel;
PointsRemaining -= PointsUsed;
} else {
// We need to use all our points, so that next die/dice
// would not return a 'Passed'.
PointsUsed = PointsRemaining;
PointsRemaining -= PointsUsed;
}
if (Throws[i] == 1) {
if (Throw === 1) {
CriticalHit++;
}
if (Throws[i] == 20) {
if (Throw === 20) {
Fumbles++;
}
AllPointsUsed.push(PointsUsed);
}
});
return {
Passed: Passed,
CriticalHit: CriticalHit,