package handlers_test import ( "net/http" "otaupdate/handlers" "otaupdate/services" "testing" "github.com/fiskerinc/cloud-services/pkg/common" mo "github.com/fiskerinc/cloud-services/pkg/db/queries/mocks" th "github.com/fiskerinc/cloud-services/pkg/testhelper" "github.com/fiskerinc/cloud-services/pkg/utils/elptr" ) func TestUpdateManifestAdd(t *testing.T) { mock := mo.MockUpdateManifests{} services.GetDB().SetUpdateManifests(&mock) tests := []mo.DBHttpTest{ { Name: "Valid data", Request: th.MakeTestRequest(http.MethodPost, "http://example.com/manifest", common.CreateUpdateManifest{ Name: "package_name", Version: "100", Description: "description", ReleaseNotes: "http://releasenotes.com", Type: "standard", RollbackEnabled: true, Active: elptr.ElPtr(true), Country: "US", PowerTrain: "MD23", Restraint: "None", Model: "Ocean", Trim: "Sport", Year: 2022, BodyType: "truck", }), ExpectedStatus: http.StatusOK, ExpectedResponse: `{"id":1,"name":"package_name","version":"100","description":"description","release_notes":"http://releasenotes.com","rollback":true,"type":"standard","active":true,"country":"US","powertrain":"MD23","restraint":"None","model":"Ocean","trim":"Sport","year":2022,"body_type":"truck"}`, }, { Name: "No data", Request: th.MakeTestRequest(http.MethodPost, "http://example.com/manifest", nil), ExpectedStatus: http.StatusBadRequest, ExpectedResponse: `{"message":"Name required","error":"Bad Request"}`, }, } mo.RunDBTests(t, tests, handlers.HandleUpdateManifestAdd, &mock) }