/
abatalev
/
gitdiff2fly
Обзор
Документация
Войти
/
abatalev
/
gitdiff2fly
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
git_test.go
91 строка
2 KB
andrey
disable test TestCommandX
02 окт 2023, 15:04
02 окт 2023, 15:04
3c64f5c
Код
Авторство
О чём код?
package main import ( "errors" "io/fs" "os" "testing" "github.com/stretchr/testify/require" ) // func TestCommandX(t *testing.T) { // cmd := OsCmd{} // s, _ := cmd.command(".", "git", "rev-list", "--max-parents=0", "HEAD") // require.New(t).Equal("5ca59ca92ae4b21408aa6146f5b183a1c5edc195", s) // } func TestReadWrite(t *testing.T) { defer os.Remove("a.txt") rio := RealIO{} if err := rio.WriteFile("a.txt", []byte("hello"), 0x755); err != nil { t.Fail() } b, _ := rio.ReadFile("a.txt") require.New(t).Equal("hello", string(b)) } type FakeIO struct { isExist bool result string } func (io FakeIO) ReadFile(_ string) ([]byte, error) { if io.isExist { return []byte(io.result), nil } return []byte{}, errors.New("can't work with 42") } func (io FakeIO) WriteFile(_ string, _ []byte, _ fs.FileMode) error { return nil } type FakeCmd struct { count int result string } func (c *FakeCmd) command(_, _ string, _ ...string) (string, error) { c.count++ return c.result, nil } func TestMakeRelease(t *testing.T) { fakeCmd := FakeCmd{result: "1"} Git{cmd: &fakeCmd, io: FakeIO{}}.makeRelease("V1_1", "1.1", "sha1") assertions := require.New(t) assertions.Equal(6, fakeCmd.count) } func TestDiff(t *testing.T) { s := Git{cmd: &FakeCmd{result: "M\t1.txt"}}.diff("1", "1", true) require.New(t).Len(s, 2) } func TestGetCurrentVersion(t *testing.T) { s := Git{cmd: &FakeCmd{result: "1"}}.getCurrentVersion() require.New(t).Equal(s, "1") } func TestGetLastRelease(t *testing.T) { dataset := []struct { curr string fileName string isExist bool fileStr string cmdRes string result string }{ {curr: "sha1", fileName: "tmp/last_commit", isExist: true, fileStr: "1111", cmdRes: "", result: "1111"}, {curr: "sha2", fileName: "tmp/last_commit", isExist: false, fileStr: "", cmdRes: "2222", result: "2222"}, } for _, data := range dataset { s, _ := Git{ io: FakeIO{isExist: data.isExist, result: data.fileStr}, cmd: &FakeCmd{result: data.cmdRes}, }.getLastRelease(data.fileName) require.New(t).Equal(s, data.result) } }