MCPcopy
hub / github.com/cli/cli / TestClientUncommittedChangeCount

Function TestClientUncommittedChangeCount

git/client_test.go:441–481  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

439}
440
441func TestClientUncommittedChangeCount(t *testing.T) {
442 tests := []struct {
443 name string
444 cmdExitStatus int
445 cmdStdout string
446 cmdStderr string
447 wantCmdArgs string
448 wantChangeCount int
449 }{
450 {
451 name: "no changes",
452 wantCmdArgs: `path/to/git status --porcelain`,
453 wantChangeCount: 0,
454 },
455 {
456 name: "one change",
457 cmdStdout: " M poem.txt",
458 wantCmdArgs: `path/to/git status --porcelain`,
459 wantChangeCount: 1,
460 },
461 {
462 name: "untracked file",
463 cmdStdout: " M poem.txt\n?? new.txt",
464 wantCmdArgs: `path/to/git status --porcelain`,
465 wantChangeCount: 2,
466 },
467 }
468 for _, tt := range tests {
469 t.Run(tt.name, func(t *testing.T) {
470 cmd, cmdCtx := createCommandContext(t, tt.cmdExitStatus, tt.cmdStdout, tt.cmdStderr)
471 client := Client{
472 GitPath: "path/to/git",
473 commandContext: cmdCtx,
474 }
475 ucc, err := client.UncommittedChangeCount(context.Background())
476 assert.Equal(t, tt.wantCmdArgs, strings.Join(cmd.Args[3:], " "))
477 assert.NoError(t, err)
478 assert.Equal(t, tt.wantChangeCount, ucc)
479 })
480 }
481}
482
483type stubbedCommit struct {
484 Sha string

Callers

nothing calls this directly

Calls 5

createCommandContextFunction · 0.85
EqualMethod · 0.80
JoinMethod · 0.80
RunMethod · 0.65

Tested by

no test coverage detected