@@ -2,13 +2,14 @@ package semrel
22
33import (
44 "fmt"
5+ "github.com/go-semantic-release/semantic-release/pkg/config"
56 "strings"
67 "testing"
78
89 "github.com/Masterminds/semver"
910)
1011
11- func TestCaluclateChange (t * testing.T ) {
12+ func TestCalculateChange (t * testing.T ) {
1213 commits := []* Commit {
1314 {SHA : "a" , Change : Change {true , false , false }},
1415 {SHA : "b" , Change : Change {false , true , false }},
@@ -23,7 +24,7 @@ func TestCaluclateChange(t *testing.T) {
2324 t .Fail ()
2425 }
2526 version , _ := semver .NewVersion ("1.0.0" )
26- newVersion := GetNewVersion (commits , & Release {SHA : "b" , Version : version })
27+ newVersion := GetNewVersion (& config. Config {}, commits , & Release {SHA : "b" , Version : version })
2728 if newVersion .String () != "2.0.0" {
2829 t .Fail ()
2930 }
@@ -36,25 +37,32 @@ func TestApplyChange(t *testing.T) {
3637 MajorChange := Change {true , true , true }
3738
3839 testCases := []struct {
39- currentVersion string
40- change Change
41- expectedVersion string
40+ currentVersion string
41+ change Change
42+ expectedVersion string
43+ allowInitialDevelopmentVersions bool
4244 }{
4345 // No Previous Releases
44- {"0.0.0" , NoChange , "0 .0.0" },
45- {"0.0.0" , PatchChange , "0 .0.1" },
46- {"0.0.0" , MinorChange , "0. 1.0" },
47- {"0.0.0" , MajorChange , "1.0.0" },
46+ {"0.0.0" , NoChange , "1 .0.0" , false },
47+ {"0.0.0" , PatchChange , "1 .0.0" , false },
48+ {"0.0.0" , MinorChange , "1.0.0" , false },
49+ {"0.0.0" , MajorChange , "1.0.0" , false },
4850
49- {"1.0.0" , NoChange , "" },
50- {"1.0.0" , PatchChange , "1.0.1" },
51- {"1.0.0" , MinorChange , "1.1.0" },
52- {"1.0.0" , MajorChange , "2.0.0" },
53- {"0.1.0" , NoChange , "1.0.0" },
51+ {"0.0.0" , NoChange , "0.1.0" , true },
52+ {"0.0.0" , PatchChange , "0.1.0" , true },
53+ {"0.0.0" , MinorChange , "0.1.0" , true },
54+ {"0.0.0" , MajorChange , "1.0.0" , true },
5455
55- {"2.0.0-beta" , MajorChange , "2.0.0-beta.1" },
56- {"2.0.0-beta.2" , MajorChange , "2.0.0-beta.3" },
57- {"2.0.0-beta.1.1" , MajorChange , "2.0.0-beta.2" },
56+ {"1.0.0" , NoChange , "" , false },
57+ {"1.0.0" , PatchChange , "1.0.1" , false },
58+ {"1.0.0" , MinorChange , "1.1.0" , false },
59+ {"1.0.0" , MajorChange , "2.0.0" , false },
60+ {"0.1.0" , NoChange , "1.0.0" , false },
61+ {"0.1.0" , NoChange , "" , true },
62+
63+ {"2.0.0-beta" , MajorChange , "2.0.0-beta.1" , false },
64+ {"2.0.0-beta.2" , MajorChange , "2.0.0-beta.3" , false },
65+ {"2.0.0-beta.1.1" , MajorChange , "2.0.0-beta.2" , false },
5866 }
5967
6068 for _ , tc := range testCases {
@@ -65,7 +73,7 @@ func TestApplyChange(t *testing.T) {
6573 t .Errorf ("failed to create version: %v" , err )
6674 }
6775
68- actual := ApplyChange (current , tc .change )
76+ actual := ApplyChange (current , tc .change , tc . allowInitialDevelopmentVersions )
6977
7078 // Handle no new version case
7179 if actual != nil && tc .expectedVersion != "" {
0 commit comments