github.com/crosbymichael/octokat@v0.0.0-20160826194511-076a32289ed5/releases_test.go (about) 1 package octokat 2 3 import ( 4 "github.com/bmizerany/assert" 5 "net/http" 6 "testing" 7 ) 8 9 func TestAddPreviewMediaType(t *testing.T) { 10 options := addPreviewMediaType(nil) 11 assert.Equal(t, PreviewMediaType, options.Headers["Accept"]) 12 } 13 14 func TestReleases(t *testing.T) { 15 setup() 16 defer tearDown() 17 18 mux.HandleFunc("/repos/jingweno/gh/releases", func(w http.ResponseWriter, r *http.Request) { 19 testMethod(t, r, "GET") 20 testHeader(t, r, "Accept", PreviewMediaType) 21 respondWith(w, loadFixture("releases.json")) 22 }) 23 24 repo := Repo{UserName: "jingweno", Name: "gh"} 25 releases, _ := client.Releases(repo, nil) 26 assert.Equal(t, 1, len(releases)) 27 28 firstRelease := releases[0] 29 assert.Equal(t, 50013, firstRelease.ID) 30 assert.Equal(t, "v0.23.0", firstRelease.TagName) 31 assert.Equal(t, "master", firstRelease.TargetCommitsh) 32 assert.Equal(t, "v0.23.0", firstRelease.Name) 33 assert.T(t, !firstRelease.Draft) 34 assert.T(t, !firstRelease.Prerelease) 35 assert.Equal(t, "* Windows works!: https://github.com/jingweno/gh/commit/6cb80cb09fd9f624a64d85438157955751a9ac70", firstRelease.Body) 36 assert.Equal(t, "https://api.github.com/repos/jingweno/gh/releases/50013", firstRelease.URL) 37 assert.Equal(t, "https://api.github.com/repos/jingweno/gh/releases/50013/assets", firstRelease.AssetsURL) 38 assert.Equal(t, "https://uploads.github.com/repos/jingweno/gh/releases/50013/assets{?name}", firstRelease.UploadURL) 39 assert.Equal(t, "https://github.com/jingweno/gh/releases/v0.23.0", firstRelease.HTMLURL) 40 assert.Equal(t, "2013-09-23 00:59:10 +0000 UTC", firstRelease.CreatedAt.String()) 41 assert.Equal(t, "2013-09-23 01:07:56 +0000 UTC", firstRelease.PublishedAt.String()) 42 43 firstReleaseAssets := firstRelease.Assets 44 assert.Equal(t, 8, len(firstReleaseAssets)) 45 46 firstAsset := firstReleaseAssets[0] 47 assert.Equal(t, 20428, firstAsset.ID) 48 assert.Equal(t, "gh_0.23.0-snapshot_amd64.deb", firstAsset.Name) 49 assert.Equal(t, "gh_0.23.0-snapshot_amd64.deb", firstAsset.Label) 50 assert.Equal(t, "application/x-deb", firstAsset.ContentType) 51 assert.Equal(t, "uploaded", firstAsset.State) 52 assert.Equal(t, 1562984, firstAsset.Size) 53 assert.Equal(t, 0, firstAsset.DownloadCount) 54 assert.Equal(t, "https://api.github.com/repos/jingweno/gh/releases/assets/20428", firstAsset.URL) 55 assert.Equal(t, "2013-09-23 01:05:20 +0000 UTC", firstAsset.CreatedAt.String()) 56 assert.Equal(t, "2013-09-23 01:07:56 +0000 UTC", firstAsset.UpdatedAt.String()) 57 } 58 59 func TestCreateRelease(t *testing.T) { 60 setup() 61 defer tearDown() 62 63 mux.HandleFunc("/repos/octokat/Hello-World/releases", func(w http.ResponseWriter, r *http.Request) { 64 testMethod(t, r, "POST") 65 testHeader(t, r, "Accept", PreviewMediaType) 66 testBody(t, r, `{"tag_name":"v1.0.0","target_commitish":"master"}`) 67 respondWith(w, loadFixture("create_release.json")) 68 }) 69 70 repo := Repo{UserName: "octokat", Name: "Hello-World"} 71 params := ReleaseParams{ 72 TagName: "v1.0.0", 73 TargetCommitish: "master", 74 } 75 options := Options{Params: params} 76 release, _ := client.CreateRelease(repo, &options) 77 78 assert.Equal(t, "v1.0.0", release.TagName) 79 }