48 lines
2.5 KiB
Go
48 lines
2.5 KiB
Go
package service
|
|
|
|
import (
|
|
"errors"
|
|
"testing"
|
|
|
|
"github.com/wmms/wmms/internal/model"
|
|
)
|
|
|
|
func TestOrganizationScopedServicesRejectInvalidOrganization(t *testing.T) {
|
|
master := NewMasterDataService()
|
|
partners := NewPartnerService()
|
|
warehouses := NewWarehouseService()
|
|
for _, id := range []int64{0, -1} {
|
|
checks := map[string]func() error{
|
|
"categories list": func() error { _, err := master.ListCategories(id); return err },
|
|
"categories create": func() error { return master.CreateCategory(&model.MaterialCategory{OrganizationID: id}) },
|
|
"categories update": func() error { return master.UpdateCategory(&model.MaterialCategory{OrganizationID: id}) },
|
|
"units list": func() error { _, err := master.ListUnits(id); return err },
|
|
"units create": func() error { return master.CreateUnit(&model.Unit{OrganizationID: id}) },
|
|
"units update": func() error { return master.UpdateUnit(&model.Unit{OrganizationID: id}) },
|
|
"rules list": func() error { _, err := master.ListCodeRules(id); return err },
|
|
"rules preview": func() error { _, err := master.NextMaterialCode(id, 1); return err },
|
|
"rules create": func() error { return master.CreateCodeRule(&model.CodeRule{OrganizationID: id}) },
|
|
"rules update": func() error { return master.UpdateCodeRule(&model.CodeRule{OrganizationID: id}) },
|
|
"partners list": func() error { _, _, err := partners.List(id, "", 20, 0, ""); return err },
|
|
"partners create": func() error { return partners.Create(&model.BusinessPartner{OrganizationID: id}) },
|
|
"partners update": func() error { return partners.Update(&model.BusinessPartner{OrganizationID: id}) },
|
|
"warehouses list": func() error { _, err := warehouses.List(id); return err },
|
|
"warehouses create": func() error { return warehouses.Create(&model.Warehouse{OrganizationID: id}) },
|
|
"warehouses update": func() error { return warehouses.Update(&model.Warehouse{OrganizationID: id}) },
|
|
"locations create": func() error { return warehouses.CreateLocation(&model.WarehouseLocation{}, id) },
|
|
"locations update": func() error { return warehouses.UpdateLocation(&model.WarehouseLocation{}, id) },
|
|
"material create": func() error {
|
|
_, err := NewMaterialService().Create(&model.CreateMaterialRequest{OrganizationID: id}, "tester")
|
|
return err
|
|
},
|
|
}
|
|
for name, check := range checks {
|
|
t.Run(name, func(t *testing.T) {
|
|
if err := check(); !errors.Is(err, ErrInvalidOrganizationID) {
|
|
t.Fatalf("error=%v", err)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}
|