customPoliciesTest.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. var should = require('chai').should();
  2. var rulesChecker = require('../../lib/rulesChecker');
  3. describe('rulesChecker', function() {
  4. var policies = require('../../lib/metadata/policies.js');
  5. it('should grade correctly jQuery versions', function() {
  6. var versions = {
  7. '1.2.9': 0,
  8. '1.3.9': 0,
  9. '1.4.4': 10,
  10. '1.5.0': 20,
  11. '1.6.3': 30,
  12. '1.7.0': 40,
  13. '1.8.3a': 50,
  14. '1.9.2': 70,
  15. '1.10.1': 90,
  16. '2.0.0-rc1': 90,
  17. '1.11.1': 100,
  18. '2.1.1-beta1': 100,
  19. '3.0.0': 100
  20. };
  21. for (var version in versions) {
  22. results = rulesChecker.check({
  23. "toolsResults": {
  24. "phantomas": {
  25. "metrics": {
  26. "jQueryVersion": version
  27. }
  28. }
  29. }
  30. }, policies);
  31. results.jQueryVersion.score.should.equal(versions[version]);
  32. }
  33. // Unknown jQuery version
  34. results = rulesChecker.check({
  35. "toolsResults": {
  36. "phantomas": {
  37. "metrics": {
  38. "jQueryVersion": "wooot"
  39. }
  40. }
  41. }
  42. }, policies);
  43. results.should.deep.equals({});
  44. // If jQueryDifferentVersions is 0
  45. results = rulesChecker.check({
  46. "toolsResults": {
  47. "phantomas": {
  48. "metrics": {
  49. "jQueryVersion": "1.6.0",
  50. "jQueryDifferentVersions": 0
  51. }
  52. }
  53. }
  54. }, policies);
  55. results.should.not.have.a.property('jQueryVersion');
  56. results.should.have.a.property('jQueryDifferentVersions');
  57. results.jQueryDifferentVersions.should.have.a.property('score').that.equals(100);
  58. // If there are more than 1 jQuery version
  59. results = rulesChecker.check({
  60. "toolsResults": {
  61. "phantomas": {
  62. "metrics": {
  63. "jQueryVersion": "1.6.0",
  64. "jQueryDifferentVersions": 2
  65. }
  66. }
  67. }
  68. }, policies);
  69. results.should.not.have.a.property('jQueryVersion');
  70. results.should.have.a.property('jQueryDifferentVersions');
  71. results.jQueryDifferentVersions.should.have.a.property('score').that.equals(0);
  72. results.jQueryDifferentVersions.should.have.a.property('abnormal').that.equals(true);
  73. });
  74. });