@@ -17,6 +17,8 @@ func TestParseConstraint(t *testing.T) {
1717 }{
1818 {">= 1.2" , constraintGreaterThanEqual , "1.2.0" , false },
1919 {"1.0" , constraintTildeOrEqual , "1.0.0" , false },
20+ {"==1.0" , constraintEqual , "1.0.0" , false },
21+ {"==1" , constraintEqual , "1.0.0" , false },
2022 {"foo" , nil , "" , true },
2123 {"<= 1.2" , constraintLessThanEqual , "1.2.0" , false },
2224 {"=< 1.2" , constraintLessThanEqual , "1.2.0" , false },
@@ -138,6 +140,23 @@ func TestConstraintCheck(t *testing.T) {
138140 {"2" , "2.1.1" , true },
139141 {"2.1" , "2.1.1" , true },
140142 {"2.1" , "2.2.1" , false },
143+ {"==2" , "1" , false },
144+ {"==2" , "3.4.5" , false },
145+ {"==2" , "2.0.0" , false },
146+ {"==2" , "2.0.0+alpha" , false },
147+ {"==2" , "2.0.0-alpha" , false },
148+ {"==2" , "2.0.1" , false },
149+ {"==2.1" , "2.1.0" , false },
150+ {"==2.1.x" , "2.1.0" , false },
151+ {"==2.1.x" , "2.1.1" , false },
152+ {"==2.1" , "2.1.1" , false },
153+ {"==2.1" , "2.2.1" , false },
154+ {"==2.1.1" , "2.1.1" , true },
155+ {"==2.1.1" , "2.2.1" , false },
156+ {"==2.1.1+alpha" , "2.1.1+alpha.1" , false },
157+ {"==2.1.1+alpha.1" , "2.1.1+alpha.1" , true },
158+ {"==2.1.1-alpha" , "2.1.1-alpha.1" , false },
159+ {"==2.1.1-alpha.1" , "2.1.1-alpha.1" , true },
141160 {"~1.2.3" , "1.2.4" , true },
142161 {"~1.2.3" , "1.3.4" , false },
143162 {"~1.2" , "1.2.4" , true },
@@ -482,6 +501,16 @@ func TestConstraintsValidate(t *testing.T) {
482501 {"!=4.x" , "4.1.0" , false },
483502 {"!=4.1.x" , "4.2.0" , true },
484503 {"!=4.2.x" , "4.2.3" , false },
504+ {"==4.1" , "4.1.0" , false },
505+ {"==4.1" , "5.1.0" , false },
506+ {"==4.x" , "5.1.0" , false },
507+ {"==4.x" , "4.1.0" , false },
508+ {"==4.1.x" , "4.2.0" , false },
509+ {"==4.1.0" , "4.1.0" , true },
510+ {"==4.1.0+alpha" , "4.1.0+alpha" , true },
511+ {"==4.1.0+alpha" , "4.1.0+alpha-1" , false },
512+ {"==4.1.0-alpha" , "4.1.0-alpha-1" , false },
513+ {"==4.2.x" , "4.2.3" , false },
485514 {">1.1" , "4.1.0" , true },
486515 {">1.1" , "1.1.0" , false },
487516 {"<1.1" , "0.1.0" , true },
@@ -600,6 +629,15 @@ func TestConstraintsValidate(t *testing.T) {
600629 {"= 2.0" , "1.2.3" , "1.2.3 is less than 2.0" },
601630 {"!=4.1" , "4.1.0" , "4.1.0 is equal to 4.1" },
602631 {"!=4.x" , "4.1.0" , "4.1.0 is equal to 4.x" },
632+ {"==4.x" , "5.1.0" , "5.1.0 is not equal to 4.x" },
633+ {"==4.x" , "4.1.0" , "4.1.0 is not equal to 4.x" },
634+ {"==4.1.x" , "4.1.0" , "4.1.0 is not equal to 4.1.x" },
635+ {"==4.1.x" , "4.2.0" , "4.2.0 is not equal to 4.1.x" },
636+ {"==4.1.2" , "4.1.3" , "4.1.3 is not equal to 4.1.2" },
637+ {"==4.1.2-beta" , "4.1.2-beta.1" , "4.1.2-beta.1 is not equal to 4.1.2-beta" },
638+ {"==4.1.2+beta" , "4.1.2+beta.1" , "4.1.2+beta.1 is not equal to 4.1.2+beta" },
639+ {"==4.0.1" , "4.0.1-beta.1" , "4.0.1-beta.1 is a prerelease version and the constraint is only looking for release versions" },
640+ {"==4.2" , "4.1.0" , "4.1.0 is not equal to 4.2" },
603641 {"!=4.2.x" , "4.2.3" , "4.2.3 is equal to 4.2.x" },
604642 {">1.1" , "1.1.0" , "1.1.0 is less than or equal to 1.1" },
605643 {"<1.1" , "1.1.0" , "1.1.0 is greater than or equal to 1.1" },
0 commit comments