Skip to content

Commit 42b1ddf

Browse files
authored
Merge pull request #62 from rwjblue/use-gt
Fix for beta versions with svelte.
2 parents 59080a5 + c0ef1ac commit 42b1ddf

File tree

2 files changed

+94
-5
lines changed

2 files changed

+94
-5
lines changed

src/utils/normalize-options.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict';
22

3-
const satisfies = require('semver').satisfies;
3+
const gte = require('semver').gte;
44

55
function normalizeOptions(options) {
66
let features = options.features || [];
@@ -32,10 +32,7 @@ function normalizeOptions(options) {
3232

3333
if (svelte !== undefined && typeof value === 'string' && svelte[name]) {
3434
hasSvelteBuild = true;
35-
flags[flagName] = svelteMap[featuresSource][flagName] = satisfies(
36-
value,
37-
`>=${svelte[name]}`
38-
);
35+
flags[flagName] = svelteMap[featuresSource][flagName] = gte(value, svelte[name]);
3936
} else if (typeof value === 'boolean' || value === null) {
4037
flags[flagName] = featuresMap[featuresSource][flagName] = value;
4138
} else {

tests/normalize-options-test.js

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
'use strict';
2+
3+
const normalizeOptions = require('../src/utils/normalize-options').normalizeOptions;
4+
5+
describe('normalizeOptions', function() {
6+
it('sets flag to false when svelte version is higher than flag version', function() {
7+
let actual = normalizeOptions({
8+
debugTools: {
9+
source: 'whatever',
10+
},
11+
envFlags: {
12+
flags: {
13+
DEBUG: true,
14+
},
15+
},
16+
svelte: { foo: '1.2.0' },
17+
features: [{ name: 'foo', source: 'foo/features', flags: { ABC: '1.1.0' } }],
18+
});
19+
20+
let expected = {
21+
debugTools: { assertPredicateIndex: undefined, debugToolsImport: 'whatever' },
22+
envFlags: { envFlagsImport: undefined, flags: { DEBUG: true } },
23+
externalizeHelpers: undefined,
24+
featureSources: ['foo/features'],
25+
features: [{ flags: { ABC: false }, name: 'foo', source: 'foo/features' }],
26+
featuresMap: { 'foo/features': {} },
27+
hasSvelteBuild: true,
28+
svelte: { foo: '1.2.0' },
29+
svelteMap: { 'foo/features': { ABC: false } },
30+
};
31+
32+
expect(actual).toEqual(expected);
33+
});
34+
35+
it('sets flag to true when svelte version is lower than flag version', function() {
36+
let actual = normalizeOptions({
37+
debugTools: {
38+
source: 'whatever',
39+
},
40+
envFlags: {
41+
flags: {
42+
DEBUG: true,
43+
},
44+
},
45+
svelte: { foo: '1.0.0' },
46+
features: [{ name: 'foo', source: 'foo/features', flags: { ABC: '1.1.0' } }],
47+
});
48+
49+
let expected = {
50+
debugTools: { assertPredicateIndex: undefined, debugToolsImport: 'whatever' },
51+
envFlags: { envFlagsImport: undefined, flags: { DEBUG: true } },
52+
externalizeHelpers: undefined,
53+
featureSources: ['foo/features'],
54+
features: [{ flags: { ABC: true }, name: 'foo', source: 'foo/features' }],
55+
featuresMap: { 'foo/features': {} },
56+
hasSvelteBuild: true,
57+
svelte: { foo: '1.0.0' },
58+
svelteMap: { 'foo/features': { ABC: true } },
59+
};
60+
61+
expect(actual).toEqual(expected);
62+
});
63+
64+
it('sets flag to true when svelte version is a beta version higher than flag version', function() {
65+
let actual = normalizeOptions({
66+
debugTools: {
67+
source: 'whatever',
68+
},
69+
envFlags: {
70+
flags: {
71+
DEBUG: true,
72+
},
73+
},
74+
svelte: { foo: '1.2.0' },
75+
features: [{ name: 'foo', source: 'foo/features', flags: { ABC: '1.1.0-beta.1' } }],
76+
});
77+
78+
let expected = {
79+
debugTools: { assertPredicateIndex: undefined, debugToolsImport: 'whatever' },
80+
envFlags: { envFlagsImport: undefined, flags: { DEBUG: true } },
81+
externalizeHelpers: undefined,
82+
featureSources: ['foo/features'],
83+
features: [{ flags: { ABC: false }, name: 'foo', source: 'foo/features' }],
84+
featuresMap: { 'foo/features': {} },
85+
hasSvelteBuild: true,
86+
svelte: { foo: '1.2.0' },
87+
svelteMap: { 'foo/features': { ABC: false } },
88+
};
89+
90+
expect(actual).toEqual(expected);
91+
});
92+
});

0 commit comments

Comments
 (0)