git-module

fork of https://git.lin.moe/gogs/git-module

git clone git://git.lin.moe/fork/git-module.git

 1package git
 2
 3import (
 4	"context"
 5	"testing"
 6
 7	"github.com/stretchr/testify/assert"
 8)
 9
10func TestTree_TreeEntry(t *testing.T) {
11	ctx := context.Background()
12	tree, err := testrepo.LsTree(ctx, "master")
13	if err != nil {
14		t.Fatal(err)
15	}
16
17	e, err := tree.TreeEntry(ctx, "")
18	if err != nil {
19		t.Fatal(err)
20	}
21
22	assert.Equal(t, tree.id, e.ID())
23	assert.Equal(t, ObjectTree, e.Type())
24	assert.True(t, e.IsTree())
25}
26
27func TestTree_Blob(t *testing.T) {
28	ctx := context.Background()
29	tree, err := testrepo.LsTree(ctx, testrepoMarks[31].String())
30	if err != nil {
31		t.Fatal(err)
32	}
33
34	t.Run("not a blob", func(t *testing.T) {
35		_, err := tree.Blob(ctx, "src")
36		assert.Equal(t, ErrNotBlob, err)
37	})
38
39	t.Run("get a blob", func(t *testing.T) {
40		b, err := tree.Blob(ctx, "README.txt")
41		if err != nil {
42			t.Fatal(err)
43		}
44
45		assert.True(t, b.IsBlob())
46	})
47
48	t.Run("get an executable as blob", func(t *testing.T) {
49		b, err := tree.Blob(ctx, "run.sh")
50		if err != nil {
51			t.Fatal(err)
52		}
53
54		assert.True(t, b.IsExec())
55	})
56}