MCPcopy Create free account
hub / github.com/alibaba/open-code-review / TestGetDiffSetWalksChangesetOrder

Function TestGetDiffSetWalksChangesetOrder

internal/diff/git_test.go:111–153  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

109}
110
111func TestGetDiffSetWalksChangesetOrder(t *testing.T) {
112 repo := t.TempDir()
113 runGitTest(t, repo, "init", "-q")
114 runGitTest(t, repo, "config", "user.email", "test@example.com")
115 runGitTest(t, repo, "config", "user.name", "Test User")
116 runGitTest(t, repo, "config", "commit.gpgsign", "false")
117
118 paths := []string{"a.go", "target/mid.go", "z.go"}
119 write := func(content string) {
120 t.Helper()
121 for _, p := range paths {
122 full := filepath.Join(repo, filepath.FromSlash(p))
123 if err := os.MkdirAll(filepath.Dir(full), 0o755); err != nil {
124 t.Fatalf("mkdir %s: %v", p, err)
125 }
126 if err := os.WriteFile(full, []byte(content), 0o644); err != nil {
127 t.Fatalf("write %s: %v", p, err)
128 }
129 }
130 }
131 write("package p\n")
132 runGitTest(t, repo, "add", ".")
133 runGitTest(t, repo, "commit", "-q", "-m", "add files")
134 write("package p\n\nconst V = 2\n")
135
136 set, err := NewWorkspaceProvider(repo, gitcmd.New(0)).GetDiffSet(context.Background())
137 if err != nil {
138 t.Fatalf("GetDiffSet: %v", err)
139 }
140
141 var got []string
142 var flags []bool
143 set.ForEachInOrder(func(d model.Diff, providerExcluded bool) {
144 got = append(got, d.NewPath)
145 flags = append(flags, providerExcluded)
146 })
147 if !slices.Equal(got, paths) {
148 t.Errorf("ForEachInOrder paths = %v, want %v", got, paths)
149 }
150 if len(flags) != 3 || flags[0] || !flags[1] || flags[2] {
151 t.Errorf("providerExcluded flags = %v, want [false true false]", flags)
152 }
153}
154
155func TestGetDiffSetWalksChangesetOrderAcrossGitignoreDrop(t *testing.T) {
156 repo := t.TempDir()

Callers

nothing calls this directly

Calls 5

NewFunction · 0.92
runGitTestFunction · 0.85
NewWorkspaceProviderFunction · 0.85
GetDiffSetMethod · 0.80
ForEachInOrderMethod · 0.80

Tested by

no test coverage detected