@@ -216,6 +216,39 @@ def test_NpmVersionRange_from_native_with_compatible_with_version_operator(self)
216216 version_range = NpmVersionRange .from_native (npm_range )
217217 assert version_range == expected
218218
219+ def test_NpmVersionRange_from_native_with_prerelease_carate_range (self ):
220+ npm_range = "^1.2.3-beta.1"
221+ expected = NpmVersionRange (
222+ constraints = (
223+ VersionConstraint (comparator = ">=" , version = SemverVersion (string = "1.2.3-beta.1" )),
224+ VersionConstraint (comparator = "<" , version = SemverVersion (string = "2.0.0" )),
225+ )
226+ )
227+ version_range = NpmVersionRange .from_native (npm_range )
228+ assert version_range == expected
229+
230+ def test_NpmVersionRange_from_native_with_prerelease_carate_range_wihtout_major (self ):
231+ npm_range = "^0.2.1-beta"
232+ expected = NpmVersionRange (
233+ constraints = (
234+ VersionConstraint (comparator = ">=" , version = SemverVersion (string = "0.2.1-beta" )),
235+ VersionConstraint (comparator = "<" , version = SemverVersion (string = "0.3.0" )),
236+ )
237+ )
238+ version_range = NpmVersionRange .from_native (npm_range )
239+ assert version_range == expected
240+
241+ def test_NpmVersionRange_from_native_with_prerelease_carate_range_wihtout_major_and_minor (self ):
242+ npm_range = "^0.0.2-beta"
243+ expected = NpmVersionRange (
244+ constraints = (
245+ VersionConstraint (comparator = ">=" , version = SemverVersion (string = "0.0.2-beta" )),
246+ VersionConstraint (comparator = "<" , version = SemverVersion (string = "0.0.3" )),
247+ )
248+ )
249+ version_range = NpmVersionRange .from_native (npm_range )
250+ assert version_range == expected
251+
219252 def test_NpmVersionRange_from_native_with_approximately_equal_to_operator (self ):
220253 npm_range = "~3.8.2"
221254 expected = NpmVersionRange (
0 commit comments