ApiFactory поднимает реальный API на одноразовом postgres:16-alpine (Ryuk off — сеть к Docker Hub нестабильна, образ закэширован; RateLimiting off через env, т.к. лимитер читает конфиг эагерно). Program сделан public partial для фабрики. Сценарии (10 зелёных): - signup-flow: signup→token→/api/me с org; дубль-signup 400; слабый пароль 400. - tenant isolation A vs B: контрагент A не виден B (список + прямой GET 404). - permission: кастомная роль без ProductsEdit → PUT товара 403, GET 200; админ не 403. - supply post→unpost: остаток 0→10, Cost=70 (скользящее среднее), unpost→0; двойной post 409. - retail overselling: продажа сверх остатка → 409; недоплата → 400. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
86 lines
6 KiB
Plaintext
86 lines
6 KiB
Plaintext
|
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
# Visual Studio Version 17
|
|
VisualStudioVersion = 17.0.31903.59
|
|
MinimumVisualStudioVersion = 10.0.40219.1
|
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{8EAE9F35-BE6B-4B77-A1F4-383EF17D9870}"
|
|
EndProject
|
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "food-market.domain", "src\food-market.domain\food-market.domain.csproj", "{BB7142C2-94F3-423F-938C-A44FF79133C0}"
|
|
EndProject
|
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "food-market.shared", "src\food-market.shared\food-market.shared.csproj", "{E99062FB-83FE-44A8-8B97-4B5FECBDFF6B}"
|
|
EndProject
|
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "food-market.application", "src\food-market.application\food-market.application.csproj", "{8F079664-97A7-49B6-81B8-B2B8171266CA}"
|
|
EndProject
|
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "food-market.infrastructure", "src\food-market.infrastructure\food-market.infrastructure.csproj", "{12D862F9-87E9-4D82-9BA8-0325E0073013}"
|
|
EndProject
|
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "food-market.api", "src\food-market.api\food-market.api.csproj", "{9E075C56-081E-4ABB-8DB3-ED649FD696FA}"
|
|
EndProject
|
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "food-market.pos.core", "src\food-market.pos.core\food-market.pos.core.csproj", "{BF3FBFD2-F40D-4510-8067-37305FFE1D14}"
|
|
EndProject
|
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "food-market.pos", "src\food-market.pos\food-market.pos.csproj", "{B178B74E-A739-4722-BFA8-D9AB694024BB}"
|
|
EndProject
|
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{F29E3026-31A5-4277-A265-081E87C76A28}"
|
|
EndProject
|
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "food-market.UnitTests", "tests\food-market.UnitTests\food-market.UnitTests.csproj", "{D8556BE1-70E3-49AD-84FD-209C80B17B57}"
|
|
EndProject
|
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "food-market.IntegrationTests", "tests\food-market.IntegrationTests\food-market.IntegrationTests.csproj", "{9122ECF4-9111-40B3-BB59-ED7C112FF575}"
|
|
EndProject
|
|
Global
|
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
Debug|Any CPU = Debug|Any CPU
|
|
Release|Any CPU = Release|Any CPU
|
|
EndGlobalSection
|
|
GlobalSection(SolutionProperties) = preSolution
|
|
HideSolutionNode = FALSE
|
|
EndGlobalSection
|
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
{BB7142C2-94F3-423F-938C-A44FF79133C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
{BB7142C2-94F3-423F-938C-A44FF79133C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
{BB7142C2-94F3-423F-938C-A44FF79133C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
{BB7142C2-94F3-423F-938C-A44FF79133C0}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
{E99062FB-83FE-44A8-8B97-4B5FECBDFF6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
{E99062FB-83FE-44A8-8B97-4B5FECBDFF6B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
{E99062FB-83FE-44A8-8B97-4B5FECBDFF6B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
{E99062FB-83FE-44A8-8B97-4B5FECBDFF6B}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
{8F079664-97A7-49B6-81B8-B2B8171266CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
{8F079664-97A7-49B6-81B8-B2B8171266CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
{8F079664-97A7-49B6-81B8-B2B8171266CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
{8F079664-97A7-49B6-81B8-B2B8171266CA}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
{12D862F9-87E9-4D82-9BA8-0325E0073013}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
{12D862F9-87E9-4D82-9BA8-0325E0073013}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
{12D862F9-87E9-4D82-9BA8-0325E0073013}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
{12D862F9-87E9-4D82-9BA8-0325E0073013}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
{9E075C56-081E-4ABB-8DB3-ED649FD696FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
{9E075C56-081E-4ABB-8DB3-ED649FD696FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
{9E075C56-081E-4ABB-8DB3-ED649FD696FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
{9E075C56-081E-4ABB-8DB3-ED649FD696FA}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
{BF3FBFD2-F40D-4510-8067-37305FFE1D14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
{BF3FBFD2-F40D-4510-8067-37305FFE1D14}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
{BF3FBFD2-F40D-4510-8067-37305FFE1D14}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
{BF3FBFD2-F40D-4510-8067-37305FFE1D14}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
{B178B74E-A739-4722-BFA8-D9AB694024BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
{B178B74E-A739-4722-BFA8-D9AB694024BB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
{B178B74E-A739-4722-BFA8-D9AB694024BB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
{B178B74E-A739-4722-BFA8-D9AB694024BB}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
{D8556BE1-70E3-49AD-84FD-209C80B17B57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
{D8556BE1-70E3-49AD-84FD-209C80B17B57}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
{D8556BE1-70E3-49AD-84FD-209C80B17B57}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
{D8556BE1-70E3-49AD-84FD-209C80B17B57}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
{9122ECF4-9111-40B3-BB59-ED7C112FF575}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
{9122ECF4-9111-40B3-BB59-ED7C112FF575}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
{9122ECF4-9111-40B3-BB59-ED7C112FF575}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
{9122ECF4-9111-40B3-BB59-ED7C112FF575}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
EndGlobalSection
|
|
GlobalSection(NestedProjects) = preSolution
|
|
{BB7142C2-94F3-423F-938C-A44FF79133C0} = {8EAE9F35-BE6B-4B77-A1F4-383EF17D9870}
|
|
{E99062FB-83FE-44A8-8B97-4B5FECBDFF6B} = {8EAE9F35-BE6B-4B77-A1F4-383EF17D9870}
|
|
{8F079664-97A7-49B6-81B8-B2B8171266CA} = {8EAE9F35-BE6B-4B77-A1F4-383EF17D9870}
|
|
{12D862F9-87E9-4D82-9BA8-0325E0073013} = {8EAE9F35-BE6B-4B77-A1F4-383EF17D9870}
|
|
{9E075C56-081E-4ABB-8DB3-ED649FD696FA} = {8EAE9F35-BE6B-4B77-A1F4-383EF17D9870}
|
|
{BF3FBFD2-F40D-4510-8067-37305FFE1D14} = {8EAE9F35-BE6B-4B77-A1F4-383EF17D9870}
|
|
{B178B74E-A739-4722-BFA8-D9AB694024BB} = {8EAE9F35-BE6B-4B77-A1F4-383EF17D9870}
|
|
{D8556BE1-70E3-49AD-84FD-209C80B17B57} = {F29E3026-31A5-4277-A265-081E87C76A28}
|
|
{9122ECF4-9111-40B3-BB59-ED7C112FF575} = {F29E3026-31A5-4277-A265-081E87C76A28}
|
|
EndGlobalSection
|
|
EndGlobal
|