mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-05-06 22:18:28 +00:00
54 lines
1.5 KiB
Go
54 lines
1.5 KiB
Go
package api
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
"github.com/aptly-dev/aptly/deb"
|
|
. "gopkg.in/check.v1"
|
|
)
|
|
|
|
type SnapshotsSuite struct {
|
|
APISuite
|
|
}
|
|
|
|
var _ = Suite(&SnapshotsSuite{})
|
|
|
|
func (s *SnapshotsSuite) TestGetSnapshotsIncludesNumPackages(c *C) {
|
|
collection := s.context.NewCollectionFactory().SnapshotCollection()
|
|
snapshot := deb.NewSnapshotFromRefList("count-snapshot-list", nil, makePackageRefList(c), "")
|
|
c.Assert(collection.Add(snapshot), IsNil)
|
|
|
|
response, err := s.HTTPRequest("GET", "/api/snapshots", nil)
|
|
c.Assert(err, IsNil)
|
|
c.Assert(response.Code, Equals, 200)
|
|
|
|
var snapshots []map[string]interface{}
|
|
err = json.Unmarshal(response.Body.Bytes(), &snapshots)
|
|
c.Assert(err, IsNil)
|
|
|
|
found := false
|
|
for _, snapshot := range snapshots {
|
|
if snapshot["Name"] == "count-snapshot-list" {
|
|
found = true
|
|
value, ok := snapshot["NumPackages"]
|
|
c.Assert(ok, Equals, true)
|
|
c.Assert(value, Equals, float64(2))
|
|
break
|
|
}
|
|
}
|
|
|
|
c.Assert(found, Equals, true)
|
|
}
|
|
|
|
func (s *SnapshotsSuite) TestGetSnapshotsReturns500OnCorruptRefList(c *C) {
|
|
collection := s.context.NewCollectionFactory().SnapshotCollection()
|
|
snapshot := deb.NewSnapshotFromRefList("broken-snapshot-list", nil, makePackageRefList(c), "")
|
|
c.Assert(collection.Add(snapshot), IsNil)
|
|
putRawDBValue(c, &s.APISuite, snapshot.RefKey(), []byte("not-msgpack"))
|
|
|
|
response, err := s.HTTPRequest("GET", "/api/snapshots", nil)
|
|
c.Assert(err, IsNil)
|
|
c.Assert(response.Code, Equals, 500)
|
|
c.Assert(response.Body.String(), Matches, ".*msgpack.*|.*decode.*")
|
|
}
|