0.2.45 - Server side git commits
This commit is contained in:
@@ -67,12 +67,13 @@ func TestUpdateOfferLogNamesTheAffectedViewer(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestEmergencyFloorForcesClientsBelow0244(t *testing.T) {
|
||||
func TestConfiguredFloorForcesClientsBelow0244(t *testing.T) {
|
||||
server := testServer(config.Config{})
|
||||
server.updatePolicy.set(appupdate.Policy{
|
||||
Enabled: true,
|
||||
LatestVersion: "0.2.44",
|
||||
DownloadURL: "/updates/memby-0.2.44.apk?token=signed",
|
||||
Enabled: true,
|
||||
LatestVersion: "0.2.44",
|
||||
RetireBelowVersion: "0.2.44",
|
||||
DownloadURL: "/updates/memby-0.2.44.apk?token=signed",
|
||||
})
|
||||
|
||||
for version, want := range map[string]string{
|
||||
@@ -95,33 +96,72 @@ func TestEmergencyFloorForcesClientsBelow0244(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestEmergencyFloorWaitsForAnActionableRelease(t *testing.T) {
|
||||
func TestConfiguredFloorWaitsForAnActionableRelease(t *testing.T) {
|
||||
for name, policy := range map[string]appupdate.Policy{
|
||||
"disabled": {
|
||||
LatestVersion: "0.2.44", DownloadURL: "/updates/memby-0.2.44.apk",
|
||||
LatestVersion: "0.2.44", RetireBelowVersion: "0.2.44",
|
||||
DownloadURL: "/updates/memby-0.2.44.apk",
|
||||
},
|
||||
"missing download": {
|
||||
Enabled: true, LatestVersion: "0.2.44",
|
||||
Enabled: true, LatestVersion: "0.2.44", RetireBelowVersion: "0.2.44",
|
||||
},
|
||||
"release too old": {
|
||||
Enabled: true, LatestVersion: "0.2.43", DownloadURL: "/updates/memby-0.2.43.apk",
|
||||
Enabled: true, LatestVersion: "0.2.43", RetireBelowVersion: "0.2.44",
|
||||
DownloadURL: "/updates/memby-0.2.43.apk",
|
||||
},
|
||||
} {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
decision := appupdate.Decide(effectiveUpdatePolicy(policy), "0.2.43")
|
||||
if mustRetireForUpdate(decision, "0.2.43") {
|
||||
t.Fatal("client would be retired without an actionable 0.2.44-or-newer release")
|
||||
if mustRetireForUpdate(decision, "0.2.43", destructiveUpdateFloor(policy)) {
|
||||
t.Fatal("client would be retired without an actionable release at the configured floor")
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestSelectedDestructiveFloorRetiresClientsBelowRelease(t *testing.T) {
|
||||
policy := appupdate.Policy{
|
||||
Enabled: true,
|
||||
LatestVersion: "0.3.0",
|
||||
RetireBelowVersion: "0.3.0",
|
||||
DownloadURL: "/updates/memby-0.3.0.apk?token=signed",
|
||||
}
|
||||
|
||||
for version, want := range map[string]bool{
|
||||
"0.2.99": true,
|
||||
"0.3.0": false,
|
||||
"0.3.1": false,
|
||||
} {
|
||||
decision := appupdate.Decide(effectiveUpdatePolicy(policy), version)
|
||||
if got := mustRetireForUpdate(decision, version, destructiveUpdateFloor(policy)); got != want {
|
||||
t.Errorf("%s: retired = %t, want %t", version, got, want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestRequiredUpdateDoesNotRetireSupportedClient(t *testing.T) {
|
||||
policy := appupdate.Policy{
|
||||
Enabled: true,
|
||||
LatestVersion: "0.3.0",
|
||||
MinimumVersion: "0.3.0",
|
||||
DownloadURL: "/updates/memby-0.3.0.apk?token=signed",
|
||||
}
|
||||
decision := appupdate.Decide(effectiveUpdatePolicy(policy), "0.2.44")
|
||||
if decision.Status != appupdate.StatusMandatory {
|
||||
t.Fatalf("status = %q, want mandatory", decision.Status)
|
||||
}
|
||||
if mustRetireForUpdate(decision, "0.2.44", destructiveUpdateFloor(policy)) {
|
||||
t.Fatal("ordinary required update retired a supported client")
|
||||
}
|
||||
}
|
||||
|
||||
func TestRetiredClientCannotSignBackIn(t *testing.T) {
|
||||
server := testServer(config.Config{})
|
||||
server.updatePolicy.set(appupdate.Policy{
|
||||
Enabled: true,
|
||||
LatestVersion: "0.2.44",
|
||||
DownloadURL: "/updates/memby-0.2.44.apk?token=signed",
|
||||
Enabled: true,
|
||||
LatestVersion: "0.2.44",
|
||||
RetireBelowVersion: "0.2.44",
|
||||
DownloadURL: "/updates/memby-0.2.44.apk?token=signed",
|
||||
})
|
||||
reached := false
|
||||
handler := server.requireSupportedClient(func(http.ResponseWriter, *http.Request) {
|
||||
|
||||
Reference in New Issue
Block a user