File view with blame information shown in the left gutter beside each line.

barerepo / server / e2e/releases_test.go
50 lines · 1.5kb · 133728eaa05486504991b230f9d4c7e986b7defc
log files threads runs releases config jump to file t
133728e barerepo 1mo
1
package e2e
133728e barerepo 1mo
2
133728e barerepo 1mo
3
import (
133728e barerepo 1mo
4
"net/http"
133728e barerepo 1mo
5
"os/exec"
133728e barerepo 1mo
6
"strings"
133728e barerepo 1mo
7
"testing"
133728e barerepo 1mo
8
)
133728e barerepo 1mo
9
133728e barerepo 1mo
10
// Appendix C lists a url for one release, and a url the book prints must not answer 404.
133728e barerepo 1mo
11
func TestOneReleaseOpensTheListAtThatTag(t *testing.T) {
133728e barerepo 1mo
12
if _, err := exec.LookPath("git"); err != nil {
133728e barerepo 1mo
13
t.Skip("git is not installed")
133728e barerepo 1mo
14
}
133728e barerepo 1mo
15
in := newInstance(t)
133728e barerepo 1mo
16
john := in.account("john")
133728e barerepo 1mo
17
work := seed(t, in, john, "john", "johnbot")
133728e barerepo 1mo
18
run(t, work, "git", "tag", "-a", "v1.2.0", "-m", "fixes the empty config panic")
133728e barerepo 1mo
19
run(t, work, "git", "push", "-q", in.url(john, "/john/johnbot"), "v1.2.0")
133728e barerepo 1mo
20
133728e barerepo 1mo
21
client := &http.Client{CheckRedirect: func(*http.Request, []*http.Request) error {
133728e barerepo 1mo
22
return http.ErrUseLastResponse
133728e barerepo 1mo
23
}}
133728e barerepo 1mo
24
resp, err := client.Get(in.http.URL + "/john/johnbot/release/v1.2.0")
133728e barerepo 1mo
25
if err != nil {
133728e barerepo 1mo
26
t.Fatal(err)
133728e barerepo 1mo
27
}
133728e barerepo 1mo
28
resp.Body.Close()
133728e barerepo 1mo
29
if resp.StatusCode != http.StatusFound {
133728e barerepo 1mo
30
t.Fatalf("the release url answered %d", resp.StatusCode)
133728e barerepo 1mo
31
}
133728e barerepo 1mo
32
if got := resp.Header.Get("Location"); got != "/john/johnbot/releases?from=v1.2.0" {
133728e barerepo 1mo
33
t.Errorf("it went to %q", got)
133728e barerepo 1mo
34
}
133728e barerepo 1mo
35
133728e barerepo 1mo
36
code, _, body := get(t, in.http.URL+"/john/johnbot/releases?from=v1.2.0")
133728e barerepo 1mo
37
if code != http.StatusOK || !strings.Contains(body, "v1.2.0") {
133728e barerepo 1mo
38
t.Errorf("the list does not show the tag it was opened at: %d\n%s", code, body)
133728e barerepo 1mo
39
}
133728e barerepo 1mo
40
133728e barerepo 1mo
41
// A tag that is not here is a 404, not the newest release wearing the wrong name.
133728e barerepo 1mo
42
resp, err = client.Get(in.http.URL + "/john/johnbot/release/v9.9.9")
133728e barerepo 1mo
43
if err != nil {
133728e barerepo 1mo
44
t.Fatal(err)
133728e barerepo 1mo
45
}
133728e barerepo 1mo
46
resp.Body.Close()
133728e barerepo 1mo
47
if resp.StatusCode != http.StatusNotFound {
133728e barerepo 1mo
48
t.Errorf("an unknown tag answered %d", resp.StatusCode)
133728e barerepo 1mo
49
}
133728e barerepo 1mo
50
}
history · rawbarerepo 0.1.0