1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-04-13 11:50:28 +02:00

add multi-line commit integration test

This commit is contained in:
Jesse Duffield 2022-12-20 22:18:26 +11:00
parent abbd598992
commit b40190bd94
44 changed files with 54 additions and 49 deletions

View File

@ -2,6 +2,7 @@ package components
import (
"fmt"
"regexp"
"strings"
"time"
@ -56,6 +57,16 @@ func NotContains(target string) *matcher {
}}
}
func MatchesRegexp(regexStr string) *matcher {
return &matcher{testFn: func(value string) (bool, string) {
matched, err := regexp.MatchString(regexStr, value)
if err != nil {
return false, fmt.Sprintf("Unexpected error parsing regular expression '%s': %s", regexStr, err.Error())
}
return matched, fmt.Sprintf("Expected '%s' to match regular expression '%s'", value, regexStr)
}}
}
func Equals(target string) *matcher {
return &matcher{testFn: func(value string) (bool, string) {
return target == value, fmt.Sprintf("Expected '%s' to equal '%s'", value, target)

View File

@ -0,0 +1,34 @@
package commit
import (
"github.com/jesseduffield/lazygit/pkg/config"
. "github.com/jesseduffield/lazygit/pkg/integration/components"
)
var CommitMultiline = NewIntegrationTest(NewIntegrationTestArgs{
Description: "Commit with a multi-line commit message",
ExtraCmdArgs: "",
Skip: false,
SetupConfig: func(config *config.AppConfig) {},
SetupRepo: func(shell *Shell) {
shell.CreateFile("myfile", "myfile content")
},
Run: func(shell *Shell, input *Input, assert *Assert, keys config.KeybindingConfig) {
assert.CommitCount(0)
input.PrimaryAction()
input.PressKeys(keys.Files.CommitChanges)
input.Type("first line")
input.PressKeys(keys.Universal.AppendNewline)
input.PressKeys(keys.Universal.AppendNewline)
input.Type("third line")
input.Confirm()
assert.CommitCount(1)
assert.MatchHeadCommitMessage(Equals("first line"))
input.SwitchToCommitsWindow()
assert.MatchMainViewContent(MatchesRegexp("first line\n\\s*\n\\s*third line"))
},
})

View File

@ -36,6 +36,7 @@ var tests = []*components.IntegrationTest{
cherry_pick.CherryPick,
cherry_pick.CherryPickConflicts,
commit.Commit,
commit.CommitMultiline,
commit.NewBranch,
commit.Staged,
commit.Unstaged,

View File

@ -1,5 +0,0 @@
0000000000000000000000000000000000000000 176069f0ded1db43eecb3b629a6077dba6c68295 CI <CI@example.com> 1645602422 +1100 commit (initial): myfile1
176069f0ded1db43eecb3b629a6077dba6c68295 9f1b5440546da24daad7014ccf3e1f4d81f9414b CI <CI@example.com> 1645602422 +1100 commit: myfile2
9f1b5440546da24daad7014ccf3e1f4d81f9414b 3933a268c502712421b7bfa04888319d6f108574 CI <CI@example.com> 1645602422 +1100 commit: myfile3
3933a268c502712421b7bfa04888319d6f108574 37128a3020849daa0847462d14c384cc74c42ae0 CI <CI@example.com> 1645602422 +1100 commit: myfile4
37128a3020849daa0847462d14c384cc74c42ae0 574013716a7f007a27b647b90cdbc78d006d792b CI <CI@example.com> 1645602427 +1100 commit: first line

View File

@ -1,5 +0,0 @@
0000000000000000000000000000000000000000 176069f0ded1db43eecb3b629a6077dba6c68295 CI <CI@example.com> 1645602422 +1100 commit (initial): myfile1
176069f0ded1db43eecb3b629a6077dba6c68295 9f1b5440546da24daad7014ccf3e1f4d81f9414b CI <CI@example.com> 1645602422 +1100 commit: myfile2
9f1b5440546da24daad7014ccf3e1f4d81f9414b 3933a268c502712421b7bfa04888319d6f108574 CI <CI@example.com> 1645602422 +1100 commit: myfile3
3933a268c502712421b7bfa04888319d6f108574 37128a3020849daa0847462d14c384cc74c42ae0 CI <CI@example.com> 1645602422 +1100 commit: myfile4
37128a3020849daa0847462d14c384cc74c42ae0 574013716a7f007a27b647b90cdbc78d006d792b CI <CI@example.com> 1645602427 +1100 commit: first line

View File

@ -1,2 +0,0 @@
x�ÍA
ƒ0@Ñ®sŠÙÊL:Ž))¸ò1™PÁ!")ØÛ×#tûyðS5[Ë¥íª€*©`”¹hÈÌJAr ©ô<ó= —˜:ï⧽ëãÏqzém[õ–ª @Â� gïáJ„èÎzNšþÉ�}˲*¹.Ñ,¹

View File

@ -1,2 +0,0 @@
x�ŽK
Ã0 D»ö)¼/YVbJ)d•c(²B ùáºÐã7Ð t5ÃcŒìëš«Eè.µ¨Zì„=E7%�ÔŒ€¬,Ó0¥I‘ÉûQÍÁE·j}pÙB¤.1Ÿ¨ÅäH|$‘@B§†ßuÞ‹í{~x=½É¾>¬k©i ƒ½:`NzžªúçÜL¹¼ª]ò¦ÆÔ9—ôë_�!?’

View File

@ -1 +0,0 @@
574013716a7f007a27b647b90cdbc78d006d792b

View File

@ -1 +0,0 @@
{"KeyEvents":[{"Timestamp":931,"Mod":0,"Key":256,"Ch":32},{"Timestamp":1467,"Mod":0,"Key":256,"Ch":99},{"Timestamp":2035,"Mod":0,"Key":256,"Ch":102},{"Timestamp":2090,"Mod":0,"Key":256,"Ch":105},{"Timestamp":2162,"Mod":0,"Key":256,"Ch":114},{"Timestamp":2259,"Mod":0,"Key":256,"Ch":115},{"Timestamp":2314,"Mod":0,"Key":256,"Ch":116},{"Timestamp":2411,"Mod":0,"Key":256,"Ch":32},{"Timestamp":2546,"Mod":0,"Key":256,"Ch":108},{"Timestamp":2578,"Mod":0,"Key":256,"Ch":105},{"Timestamp":2627,"Mod":0,"Key":256,"Ch":110},{"Timestamp":2691,"Mod":0,"Key":256,"Ch":101},{"Timestamp":3358,"Mod":4,"Key":13,"Ch":13},{"Timestamp":3577,"Mod":4,"Key":13,"Ch":13},{"Timestamp":3810,"Mod":0,"Key":256,"Ch":116},{"Timestamp":3874,"Mod":0,"Key":256,"Ch":104},{"Timestamp":3914,"Mod":0,"Key":256,"Ch":105},{"Timestamp":3986,"Mod":0,"Key":256,"Ch":114},{"Timestamp":4107,"Mod":0,"Key":256,"Ch":100},{"Timestamp":4195,"Mod":0,"Key":256,"Ch":32},{"Timestamp":4291,"Mod":0,"Key":256,"Ch":108},{"Timestamp":4322,"Mod":0,"Key":256,"Ch":105},{"Timestamp":4370,"Mod":0,"Key":256,"Ch":110},{"Timestamp":4426,"Mod":0,"Key":256,"Ch":101},{"Timestamp":4603,"Mod":0,"Key":13,"Ch":13},{"Timestamp":5267,"Mod":0,"Key":256,"Ch":113}],"ResizeEvents":[{"Timestamp":0,"Width":272,"Height":74}]}

View File

@ -1,24 +0,0 @@
#!/bin/sh
set -e
cd $1
git init
git config user.email "CI@example.com"
git config user.name "CI"
echo test1 > myfile1
git add .
git commit -am "myfile1"
echo test2 > myfile2
git add .
git commit -am "myfile2"
echo test3 > myfile3
git add .
git commit -am "myfile3"
echo test4 > myfile4
git add .
git commit -am "myfile4"
echo test5 > myfile5

View File

@ -1,4 +0,0 @@
{
"description": "stage a file and commit the change with a multiline commit message",
"speed": 15
}

View File

@ -8,3 +8,7 @@
[user]
email = CI@example.com
name = CI
[commit]
gpgSign = false
[protocol "file"]
allow = always

View File

@ -0,0 +1 @@
0000000000000000000000000000000000000000 f5b4b9b810f0c3d13754db99d24b04de451f8cec CI <CI@example.com> 1671534726 +1100 commit (initial): first line

View File

@ -0,0 +1 @@
0000000000000000000000000000000000000000 f5b4b9b810f0c3d13754db99d24b04de451f8cec CI <CI@example.com> 1671534726 +1100 commit (initial): first line

View File

@ -0,0 +1 @@
f5b4b9b810f0c3d13754db99d24b04de451f8cec

View File

@ -0,0 +1 @@
myfile content