// UpdateStatus updates the status of a form in the store. // 200 Success, 400 Bad Request, 404 Not Found, 500 Internal func (formHandle) UpdateStatus(c *web.Context) error { id := c.Params["id"] status := c.Params["status"] f, err := form.UpdateStatus(c.SessionID, c.Ctx["DB"].(*db.DB), id, status) if err != nil { return err } c.Respond(f, http.StatusOK) return nil }
func TestUpdateStatus(t *testing.T) { fms, db := setupForms(t, "form") defer teardownForms(t, db) t.Log("Given the need to upsert and delete forms.") { t.Log("\tWhen starting from an empty forms collection") { //---------------------------------------------------------------------- // Upsert the form. if err := form.Upsert(tests.Context, db, &fms[0]); err != nil { t.Fatalf("\t%s\tShould be able to upsert a form : %s", tests.Failed, err) } t.Logf("\t%s\tShould be able to upsert a form.", tests.Success) //---------------------------------------------------------------------- // Update it's status. newStatus := "updated_" + time.Now().String() fm, err := form.UpdateStatus(tests.Context, db, fms[0].ID.Hex(), newStatus) if err != nil { t.Logf("\t%s\tShould be able to update a forms status without error : %s", tests.Success, err.Error()) } t.Logf("\t%s\tShould be able to update a forms status without error.", tests.Success) //---------------------------------------------------------------------- // Check we got the right form. if fm.ID.Hex() != fms[0].ID.Hex() { t.Fatalf("\t%s\tShould be able to retrieve a form given it's id : ID's of retrieved forms do not match", tests.Success) } t.Logf("\t%s\tShould be able to retrieve a form given it's id.", tests.Success) //---------------------------------------------------------------------- // Check that it's status is changed. if fm.Status != newStatus { t.Fatalf("\t%s\tShould be able to set the status on the returned form : Expected %s, got %s", tests.Success, newStatus, fm.Status) } t.Logf("\t%s\tShould be able to set the status on the returned form.", tests.Success) //---------------------------------------------------------------------- // Get a copy from the DB. rfm, err := form.Retrieve(tests.Context, db, fm.ID.Hex()) if err != nil { t.Fatalf("\t%s\tShould be able to retrieve a form given it's id : %s", tests.Success, err.Error()) } t.Logf("\t%s\tShould be able to retrieve a form given it's id.", tests.Success) //---------------------------------------------------------------------- // Check that the DB copy has it's status changed. if rfm.Status != newStatus { t.Fatalf("\t%s\tShould be able to update a form's status in the database : Expected %s, got %s", tests.Failed, newStatus, rfm.Status) } t.Logf("\t%s\tShould be able to update a form's status in the database.", tests.Success) } } }