material_manage_system/internal/service/organization_parameters_test.go
2026-10-09 09:56:21 +08:00

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)
}
})
}
}
}