Skip to content

Commit cf712a6

Browse files
authored
fix: support pre-release version tags for dart version check (#477)
1 parent 2d83b51 commit cf712a6

File tree

2 files changed

+45
-1
lines changed

2 files changed

+45
-1
lines changed

packages/amplify-codegen/src/utils/validateDartSDK.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ function validateDartSDK(context, projectRoot) {
99
try {
1010
const config = yaml.load(fs.readFileSync(path.join(projectRoot, PUBSPEC_FILE_NAME), 'utf8'));
1111
const version = semver.minVersion(config.environment.sdk);
12-
if (semver.satisfies(version, '>= 2.12.0')) {
12+
if (semver.satisfies(version, '>= 2.12.0', { includePrerelease: true })) {
1313
context.print.warning('\nDetected Dart SDK version 2.12.0 or above');
1414
return true;
1515
}

packages/amplify-codegen/tests/utils/validateDartSDK.test.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ describe('Validate Dart SDK version tests', () => {
2626
mockFs({ [MOCK_PUBSPEC_FILE_PATH]: yaml.dump(config) });
2727
expect(validateDartSDK(MOCK_CONTEXT, MOCK_PROJECT_ROOT)).toBe(true);
2828
});
29+
2930
it('with caret version', () => {
3031
const config = {
3132
environment: {
@@ -35,6 +36,17 @@ describe('Validate Dart SDK version tests', () => {
3536
mockFs({ [MOCK_PUBSPEC_FILE_PATH]: yaml.dump(config) });
3637
expect(validateDartSDK(MOCK_CONTEXT, MOCK_PROJECT_ROOT)).toBe(true);
3738
});
39+
40+
it('with preRelease caret version', () => {
41+
const config = {
42+
environment: {
43+
sdk: '^2.18.0-release1',
44+
},
45+
};
46+
mockFs({ [MOCK_PUBSPEC_FILE_PATH]: yaml.dump(config) });
47+
expect(validateDartSDK(MOCK_CONTEXT, MOCK_PROJECT_ROOT)).toBe(true);
48+
});
49+
3850
it('with ranged version', () => {
3951
const config = {
4052
environment: {
@@ -44,6 +56,16 @@ describe('Validate Dart SDK version tests', () => {
4456
mockFs({ [MOCK_PUBSPEC_FILE_PATH]: yaml.dump(config) });
4557
expect(validateDartSDK(MOCK_CONTEXT, MOCK_PROJECT_ROOT)).toBe(true);
4658
});
59+
60+
it('with preRelease range', () => {
61+
const config = {
62+
environment: {
63+
sdk: '>=2.18.0-release1 <3.0.0',
64+
},
65+
};
66+
mockFs({ [MOCK_PUBSPEC_FILE_PATH]: yaml.dump(config) });
67+
expect(validateDartSDK(MOCK_CONTEXT, MOCK_PROJECT_ROOT)).toBe(true);
68+
});
4769
});
4870

4971
describe('should return false if the minimum version is less than 2.12.0', () => {
@@ -56,6 +78,7 @@ describe('Validate Dart SDK version tests', () => {
5678
mockFs({ [MOCK_PUBSPEC_FILE_PATH]: yaml.dump(config) });
5779
expect(validateDartSDK(MOCK_CONTEXT, MOCK_PROJECT_ROOT)).toBe(false);
5880
});
81+
5982
it('with caret version', () => {
6083
const config = {
6184
environment: {
@@ -65,6 +88,17 @@ describe('Validate Dart SDK version tests', () => {
6588
mockFs({ [MOCK_PUBSPEC_FILE_PATH]: yaml.dump(config) });
6689
expect(validateDartSDK(MOCK_CONTEXT, MOCK_PROJECT_ROOT)).toBe(false);
6790
});
91+
92+
it('with preRelease caret version', () => {
93+
const config = {
94+
environment: {
95+
sdk: '^2.0.0-release1',
96+
},
97+
};
98+
mockFs({ [MOCK_PUBSPEC_FILE_PATH]: yaml.dump(config) });
99+
expect(validateDartSDK(MOCK_CONTEXT, MOCK_PROJECT_ROOT)).toBe(false);
100+
});
101+
68102
it('with ranged version', () => {
69103
const config = {
70104
environment: {
@@ -74,6 +108,16 @@ describe('Validate Dart SDK version tests', () => {
74108
mockFs({ [MOCK_PUBSPEC_FILE_PATH]: yaml.dump(config) });
75109
expect(validateDartSDK(MOCK_CONTEXT, MOCK_PROJECT_ROOT)).toBe(false);
76110
});
111+
112+
it('with preRelease range', () => {
113+
const config = {
114+
environment: {
115+
sdk: '>=2.0.0-release1 <3.0.0',
116+
},
117+
};
118+
mockFs({ [MOCK_PUBSPEC_FILE_PATH]: yaml.dump(config) });
119+
expect(validateDartSDK(MOCK_CONTEXT, MOCK_PROJECT_ROOT)).toBe(false);
120+
});
77121
});
78122

79123
it('should return true if the sdk version cannot be found', () => {

0 commit comments

Comments
 (0)