version_specs.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import { describe, beforeEach, it, expect } from 'test/lib/common';
  2. import { SemVersion, isVersionGtOrEq } from 'app/core/utils/version';
  3. describe('SemVersion', () => {
  4. let version = '1.0.0-alpha.1';
  5. describe('parsing', () => {
  6. it('should parse version properly', () => {
  7. let semver = new SemVersion(version);
  8. expect(semver.major).to.be(1);
  9. expect(semver.minor).to.be(0);
  10. expect(semver.patch).to.be(0);
  11. expect(semver.meta).to.be('alpha.1');
  12. });
  13. });
  14. describe('comparing', () => {
  15. beforeEach(() => {
  16. version = '3.4.5';
  17. });
  18. it('should detect greater version properly', () => {
  19. let semver = new SemVersion(version);
  20. let cases = [
  21. { value: '3.4.5', expected: true },
  22. { value: '3.4.4', expected: true },
  23. { value: '3.4.6', expected: false },
  24. { value: '4', expected: false },
  25. { value: '3.5', expected: false },
  26. ];
  27. cases.forEach(testCase => {
  28. expect(semver.isGtOrEq(testCase.value)).to.be(testCase.expected);
  29. });
  30. });
  31. });
  32. describe('isVersionGtOrEq', () => {
  33. it('should compare versions properly (a >= b)', () => {
  34. let cases = [
  35. { values: ['3.4.5', '3.4.5'], expected: true },
  36. { values: ['3.4.5', '3.4.4'], expected: true },
  37. { values: ['3.4.5', '3.4.6'], expected: false },
  38. { values: ['3.4', '3.4.0'], expected: true },
  39. { values: ['3', '3.0.0'], expected: true },
  40. { values: ['3.1.1-beta1', '3.1'], expected: true },
  41. { values: ['3.4.5', '4'], expected: false },
  42. { values: ['3.4.5', '3.5'], expected: false },
  43. ];
  44. cases.forEach(testCase => {
  45. expect(isVersionGtOrEq(testCase.values[0], testCase.values[1])).to.be(testCase.expected);
  46. });
  47. });
  48. });
  49. });