| 110 | } |
| 111 | |
| 112 | func TestClientRemotes(t *testing.T) { |
| 113 | tempDir := t.TempDir() |
| 114 | initRepo(t, tempDir) |
| 115 | gitDir := filepath.Join(tempDir, ".git") |
| 116 | remoteFile := filepath.Join(gitDir, "config") |
| 117 | remotes := ` |
| 118 | [remote "origin"] |
| 119 | url = git@example.com:monalisa/origin.git |
| 120 | [remote "test"] |
| 121 | url = git://github.com/hubot/test.git |
| 122 | gh-resolved = other |
| 123 | [remote "upstream"] |
| 124 | url = https://github.com/monalisa/upstream.git |
| 125 | gh-resolved = base |
| 126 | [remote "github"] |
| 127 | url = git@github.com:hubot/github.git |
| 128 | ` |
| 129 | f, err := os.OpenFile(remoteFile, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0755) |
| 130 | assert.NoError(t, err) |
| 131 | _, err = f.Write([]byte(remotes)) |
| 132 | assert.NoError(t, err) |
| 133 | err = f.Close() |
| 134 | assert.NoError(t, err) |
| 135 | client := Client{ |
| 136 | RepoDir: tempDir, |
| 137 | } |
| 138 | rs, err := client.Remotes(context.Background()) |
| 139 | assert.NoError(t, err) |
| 140 | assert.Equal(t, 4, len(rs)) |
| 141 | assert.Equal(t, "upstream", rs[0].Name) |
| 142 | assert.Equal(t, "base", rs[0].Resolved) |
| 143 | assert.Equal(t, "github", rs[1].Name) |
| 144 | assert.Equal(t, "", rs[1].Resolved) |
| 145 | assert.Equal(t, "origin", rs[2].Name) |
| 146 | assert.Equal(t, "", rs[2].Resolved) |
| 147 | assert.Equal(t, "test", rs[3].Name) |
| 148 | assert.Equal(t, "other", rs[3].Resolved) |
| 149 | } |
| 150 | |
| 151 | func TestClientRemotes_no_resolved_remote(t *testing.T) { |
| 152 | tempDir := t.TempDir() |