|
4 | 4 | getNextVersion,
|
5 | 5 | getNextPreVersion,
|
6 | 6 | getPreReleaseTag,
|
| 7 | + getVersionFromTag, |
7 | 8 | } = require("../../lib/updateDeps");
|
8 | 9 |
|
9 | 10 | describe("resolveNextVersion()", () => {
|
@@ -227,3 +228,37 @@ describe("getPreReleaseTag()", () => {
|
227 | 228 | });
|
228 | 229 | });
|
229 | 230 | });
|
| 231 | + |
| 232 | +describe("getVersionFromTag()", () => { |
| 233 | + // prettier-ignore |
| 234 | + const cases = [ |
| 235 | + [{}, undefined, null], |
| 236 | + [{ name: undefined }, undefined, null], |
| 237 | + [{}, null, null], |
| 238 | + [{ name: null }, null, null], |
| 239 | + [{ name: undefined }, '1.0.0', '1.0.0'], |
| 240 | + [{ name: null }, '1.0.0', '1.0.0'], |
| 241 | + [{ name: 'abc' }, undefined, null], |
| 242 | + [{ name: 'abc' }, null, null], |
| 243 | + [{ name: 'abc' }, '1.0.0', '1.0.0'], |
| 244 | + [{ name: 'dev' }, '1.0.0-dev.1', '1.0.0-dev.1'], |
| 245 | + [{ name: 'app' }, 'app@1.0.0-dev.1', '1.0.0-dev.1'], |
| 246 | + [{ name: 'app' }, 'app@1.0.0-devapp@.1', null], |
| 247 | + [{ name: 'msr-test-a' }, 'msr-test-a@1.0.0-rc.1', '1.0.0-rc.1'], |
| 248 | + [{ name: 'msr.test.a' }, 'msr.test.a@1.0.0', '1.0.0'], |
| 249 | + [{ name: 'msr_test_a' }, 'msr_test_a@1.0.0', '1.0.0'], |
| 250 | + [{ name: 'msr@test@a' }, 'msr@test@a@1.0.0', '1.0.0'], |
| 251 | + [{ name: 'abc' }, 'a.b.c-rc.0', null], |
| 252 | + [{ name: 'abc' }, '1-rc.0', null], |
| 253 | + [{ name: 'abc' }, '1.0.x-rc.0', null], |
| 254 | + [{ name: 'abc' }, '1.x.0-rc.0', null], |
| 255 | + [{ name: 'abc' }, 'x.1.0-rc.0', null], |
| 256 | + ] |
| 257 | + |
| 258 | + cases.forEach(([pkg, tag, versionFromTag]) => { |
| 259 | + it(`${JSON.stringify(pkg)} pkg with tag ${tag} gives ${versionFromTag}`, () => { |
| 260 | + // prettier-ignore |
| 261 | + expect(getVersionFromTag(pkg, tag)).toBe(versionFromTag); |
| 262 | + }); |
| 263 | + }); |
| 264 | +}); |
0 commit comments