Skip to content

Commit 78ecc5e

Browse files
Only export isEmberSourceVersionAtLeast from ember-source-version utility
Co-authored-by: NullVoxPopuli <[email protected]>
1 parent 8710a7a commit 78ecc5e

2 files changed

Lines changed: 50 additions & 97 deletions

File tree

lib/utils/ember-source-version.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,5 @@ function isEmberSourceVersionAtLeast(major, minor, projectRoot) {
5959
}
6060

6161
module.exports = {
62-
getEmberSourceVersion,
63-
isVersionAtLeast,
6462
isEmberSourceVersionAtLeast,
6563
};

tests/lib/utils/ember-source-version-test.js

Lines changed: 50 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -3,72 +3,10 @@
33
const fs = require('node:fs');
44
const os = require('node:os');
55
const path = require('node:path');
6-
const {
7-
getEmberSourceVersion,
8-
isVersionAtLeast,
9-
isEmberSourceVersionAtLeast,
10-
} = require('../../../lib/utils/ember-source-version');
6+
const { isEmberSourceVersionAtLeast } = require('../../../lib/utils/ember-source-version');
117

128
describe('ember-source-version', () => {
13-
describe('isVersionAtLeast', () => {
14-
it('returns true when major version is greater', () => {
15-
expect(isVersionAtLeast('7.0.0', 6, 8)).toBe(true);
16-
});
17-
18-
it('returns true when major matches and minor is greater', () => {
19-
expect(isVersionAtLeast('6.10.0', 6, 8)).toBe(true);
20-
});
21-
22-
it('returns true when major and minor match exactly', () => {
23-
expect(isVersionAtLeast('6.8.0', 6, 8)).toBe(true);
24-
});
25-
26-
it('returns true when major and minor match with patch version', () => {
27-
expect(isVersionAtLeast('6.8.3', 6, 8)).toBe(true);
28-
});
29-
30-
it('returns false when major matches but minor is less', () => {
31-
expect(isVersionAtLeast('6.7.0', 6, 8)).toBe(false);
32-
});
33-
34-
it('returns false when major is less', () => {
35-
expect(isVersionAtLeast('5.12.0', 6, 8)).toBe(false);
36-
});
37-
38-
it('returns false for null', () => {
39-
expect(isVersionAtLeast(null, 6, 8)).toBe(false);
40-
});
41-
42-
it('returns false for undefined', () => {
43-
expect(isVersionAtLeast(undefined, 6, 8)).toBe(false);
44-
});
45-
46-
it('returns false for empty string', () => {
47-
expect(isVersionAtLeast('', 6, 8)).toBe(false);
48-
});
49-
50-
it('returns false for non-string input', () => {
51-
expect(isVersionAtLeast(123, 6, 8)).toBe(false);
52-
});
53-
54-
it('returns false for invalid version string', () => {
55-
expect(isVersionAtLeast('invalid', 6, 8)).toBe(false);
56-
});
57-
58-
it('handles pre-release versions', () => {
59-
expect(isVersionAtLeast('6.8.0-beta.1', 6, 8)).toBe(true);
60-
});
61-
62-
it('handles two-part version strings', () => {
63-
expect(isVersionAtLeast('6.8', 6, 8)).toBe(true);
64-
});
65-
66-
it('checks against 0.0 minimum', () => {
67-
expect(isVersionAtLeast('0.0.1', 0, 0)).toBe(true);
68-
});
69-
});
70-
71-
describe('getEmberSourceVersion', () => {
9+
describe('isEmberSourceVersionAtLeast', () => {
7210
let tmpDir;
7311

7412
beforeEach(() => {
@@ -79,80 +17,67 @@ describe('ember-source-version', () => {
7917
fs.rmSync(tmpDir, { recursive: true });
8018
});
8119

82-
it('returns null when ember-source is not installed', () => {
83-
expect(getEmberSourceVersion(tmpDir)).toBeNull();
84-
});
85-
86-
it('returns the version when ember-source is installed', () => {
20+
it('returns true when installed version meets the requirement', () => {
8721
const emberSourceDir = path.join(tmpDir, 'node_modules', 'ember-source');
8822
fs.mkdirSync(emberSourceDir, { recursive: true });
8923
fs.writeFileSync(
9024
path.join(emberSourceDir, 'package.json'),
9125
JSON.stringify({ name: 'ember-source', version: '6.8.0' })
9226
);
9327

94-
expect(getEmberSourceVersion(tmpDir)).toBe('6.8.0');
28+
expect(isEmberSourceVersionAtLeast(6, 8, tmpDir)).toBe(true);
9529
});
9630

97-
it('returns null when package.json has no version field', () => {
31+
it('returns true when installed version exceeds the requirement', () => {
9832
const emberSourceDir = path.join(tmpDir, 'node_modules', 'ember-source');
9933
fs.mkdirSync(emberSourceDir, { recursive: true });
10034
fs.writeFileSync(
10135
path.join(emberSourceDir, 'package.json'),
102-
JSON.stringify({ name: 'ember-source' })
36+
JSON.stringify({ name: 'ember-source', version: '7.0.0' })
10337
);
10438

105-
expect(getEmberSourceVersion(tmpDir)).toBeNull();
39+
expect(isEmberSourceVersionAtLeast(6, 8, tmpDir)).toBe(true);
10640
});
10741

108-
it('returns null when package.json is malformed', () => {
42+
it('returns true when major version is greater', () => {
10943
const emberSourceDir = path.join(tmpDir, 'node_modules', 'ember-source');
11044
fs.mkdirSync(emberSourceDir, { recursive: true });
111-
fs.writeFileSync(path.join(emberSourceDir, 'package.json'), 'not json');
45+
fs.writeFileSync(
46+
path.join(emberSourceDir, 'package.json'),
47+
JSON.stringify({ name: 'ember-source', version: '7.0.0' })
48+
);
11249

113-
expect(getEmberSourceVersion(tmpDir)).toBeNull();
50+
expect(isEmberSourceVersionAtLeast(6, 8, tmpDir)).toBe(true);
11451
});
11552

116-
it('handles pre-release versions', () => {
53+
it('returns true when major matches and minor is greater', () => {
11754
const emberSourceDir = path.join(tmpDir, 'node_modules', 'ember-source');
11855
fs.mkdirSync(emberSourceDir, { recursive: true });
11956
fs.writeFileSync(
12057
path.join(emberSourceDir, 'package.json'),
121-
JSON.stringify({ name: 'ember-source', version: '7.0.0-beta.1' })
58+
JSON.stringify({ name: 'ember-source', version: '6.10.0' })
12259
);
12360

124-
expect(getEmberSourceVersion(tmpDir)).toBe('7.0.0-beta.1');
125-
});
126-
});
127-
128-
describe('isEmberSourceVersionAtLeast', () => {
129-
let tmpDir;
130-
131-
beforeEach(() => {
132-
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'eslint-plugin-ember-'));
133-
});
134-
135-
afterEach(() => {
136-
fs.rmSync(tmpDir, { recursive: true });
61+
expect(isEmberSourceVersionAtLeast(6, 8, tmpDir)).toBe(true);
13762
});
13863

139-
it('returns true when installed version meets the requirement', () => {
64+
it('returns true with patch version', () => {
14065
const emberSourceDir = path.join(tmpDir, 'node_modules', 'ember-source');
14166
fs.mkdirSync(emberSourceDir, { recursive: true });
14267
fs.writeFileSync(
14368
path.join(emberSourceDir, 'package.json'),
144-
JSON.stringify({ name: 'ember-source', version: '6.8.0' })
69+
JSON.stringify({ name: 'ember-source', version: '6.8.3' })
14570
);
14671

14772
expect(isEmberSourceVersionAtLeast(6, 8, tmpDir)).toBe(true);
14873
});
14974

150-
it('returns true when installed version exceeds the requirement', () => {
75+
it('returns true with pre-release version that meets requirement', () => {
15176
const emberSourceDir = path.join(tmpDir, 'node_modules', 'ember-source');
15277
fs.mkdirSync(emberSourceDir, { recursive: true });
15378
fs.writeFileSync(
15479
path.join(emberSourceDir, 'package.json'),
155-
JSON.stringify({ name: 'ember-source', version: '7.0.0' })
80+
JSON.stringify({ name: 'ember-source', version: '6.8.0-beta.1' })
15681
);
15782

15883
expect(isEmberSourceVersionAtLeast(6, 8, tmpDir)).toBe(true);
@@ -169,8 +94,38 @@ describe('ember-source-version', () => {
16994
expect(isEmberSourceVersionAtLeast(6, 8, tmpDir)).toBe(false);
17095
});
17196

97+
it('returns false when major is less', () => {
98+
const emberSourceDir = path.join(tmpDir, 'node_modules', 'ember-source');
99+
fs.mkdirSync(emberSourceDir, { recursive: true });
100+
fs.writeFileSync(
101+
path.join(emberSourceDir, 'package.json'),
102+
JSON.stringify({ name: 'ember-source', version: '5.12.0' })
103+
);
104+
105+
expect(isEmberSourceVersionAtLeast(6, 8, tmpDir)).toBe(false);
106+
});
107+
172108
it('returns false when ember-source is not installed', () => {
173109
expect(isEmberSourceVersionAtLeast(6, 8, tmpDir)).toBe(false);
174110
});
111+
112+
it('returns false when package.json has no version field', () => {
113+
const emberSourceDir = path.join(tmpDir, 'node_modules', 'ember-source');
114+
fs.mkdirSync(emberSourceDir, { recursive: true });
115+
fs.writeFileSync(
116+
path.join(emberSourceDir, 'package.json'),
117+
JSON.stringify({ name: 'ember-source' })
118+
);
119+
120+
expect(isEmberSourceVersionAtLeast(6, 8, tmpDir)).toBe(false);
121+
});
122+
123+
it('returns false when package.json is malformed', () => {
124+
const emberSourceDir = path.join(tmpDir, 'node_modules', 'ember-source');
125+
fs.mkdirSync(emberSourceDir, { recursive: true });
126+
fs.writeFileSync(path.join(emberSourceDir, 'package.json'), 'not json');
127+
128+
expect(isEmberSourceVersionAtLeast(6, 8, tmpDir)).toBe(false);
129+
});
175130
});
176131
});

0 commit comments

Comments
 (0)