77 "testing"
88
99 "github.com/conventionalcommit/parser"
10- "github.com/stretchr/testify/assert"
1110 "github.com/stretchr/testify/suite"
1211)
1312
@@ -47,6 +46,21 @@ var commitFooters = parser.Footer{
4746 },
4847}
4948
49+ var multiLineFooters = parser.Footer {
50+ Notes : []parser.FooterNote {
51+ {
52+ Token : "footer" ,
53+ Value : `multi line footer
54+ message is here
55+ ` ,
56+ },
57+ {
58+ Token : "hash-footer" ,
59+ Value : "123" ,
60+ },
61+ },
62+ }
63+
5064func TestParser (t * testing.T ) {
5165 ps := & parserSuite {}
5266 suite .Run (t , ps )
@@ -260,6 +274,51 @@ func (s *parserSuite) TestBreakingChangeDescriptionScopeBodyFooters() {
260274 s .parseMsgAndCompare ("breaking_change_description_scope_body_footers" , expectedCommit )
261275}
262276
277+ func (s * parserSuite ) TestFooterMultiLine () {
278+ expectedCommit := & parser.Commit {
279+ Header : parser.Header {
280+ Type : commitType ,
281+ Description : commitDescription ,
282+ },
283+ Footer : multiLineFooters ,
284+ }
285+ s .parseMsgAndCompare ("footer_multi_line" , expectedCommit )
286+ }
287+
288+ func (s * parserSuite ) TestErrNoBlankLine () {
289+ t := s .T ()
290+
291+ fileName := "err_no_blank_line"
292+
293+ commitMsg := s .loadCommitMsgFromFile (filepath .Join (testDataDir , fileName ))
294+ _ , err := parser .Parse (commitMsg )
295+ if err == nil {
296+ t .Errorf ("no error: test file %v passed" , fileName )
297+ return
298+ }
299+
300+ if ! parser .IsNoBlankLineErr (err ) {
301+ t .Error ("error is not NoBlankLineErr error" , err )
302+ }
303+ }
304+
305+ func (s * parserSuite ) TestErrHeaderLine () {
306+ t := s .T ()
307+
308+ fileName := "err_header_line"
309+
310+ commitMsg := s .loadCommitMsgFromFile (filepath .Join (testDataDir , fileName ))
311+ _ , err := parser .Parse (commitMsg )
312+ if err == nil {
313+ t .Errorf ("no error: test file %v passed" , fileName )
314+ return
315+ }
316+
317+ if ! parser .IsHeaderErr (err ) {
318+ t .Error ("error is not HeaderErr error" , err )
319+ }
320+ }
321+
263322func (s * parserSuite ) parseMsgAndCompare (fileName string , expectedCommit * parser.Commit ) {
264323 t := s .T ()
265324 t .Helper ()
@@ -285,7 +344,7 @@ func (s *parserSuite) loadCommitMsgFromFile(fileName string) string {
285344
286345 out , err := os .ReadFile (fileName )
287346 if err != nil {
288- assert . Failf ( t , "error in test setup" , " unable to load file %s" , fileName )
347+ t . Errorf ( "error in test setup; unable to load file %s" , fileName )
289348 }
290349 return strings .TrimSpace (string (out ))
291350}
0 commit comments