fix(api): сохранять достоверные параметры рекурсивных маршрутов
This commit is contained in:
1 parent
50fad3ac80
commit
54ef752a5b
17 files changed
+198
-45
No files matched your search
@@ -6,14 +6,14 @@ for(const change of ["backend","mode"])for(const operation of ["read","write"])f
|
||||
let newReads=0
|
||||
await page.route("**/health",r=>r.fulfill({headers,json:{ok:true}}))
|
||||
await page.route("**/api/**",r=>{
|
||||
const u=new URL(r.request().url()),p=u.pathname;if(p==="/api/recursive-routes"&&u.port==="8101")newReads++
|
||||
return r.fulfill({headers,json:p==="/api/servers"?[device]:p==="/api/auth/config"?{required:false}:p==="/api/recursive-routes"?{serverId:1,routes:[row(u.port==="8101"?"Новый снимок":"Старый снимок")],live:true,stale:false}:p==="/api/recursive-routes/gateways"?{serverId:1,gateways:[]}:{} })
|
||||
const u=new URL(r.request().url()),p=u.pathname;if(p==="/api/recursive-routes/catalog"&&u.port==="8101")newReads++
|
||||
return r.fulfill({headers,json:p==="/api/servers"?[device]:p==="/api/auth/config"?{required:false}:p==="/api/recursive-routes/catalog"?{serverId:1,routes:[row(u.port==="8101"?"Новый снимок":"Старый снимок")],live:true,stale:false}:p==="/api/recursive-routes/gateways/catalog"?{serverId:1,gateways:[]}:{} })
|
||||
})
|
||||
await page.goto("/settings");await page.getByRole("link",{name:/^Рекурсивные маршруты/}).click()
|
||||
await expect(page.locator("tr[data-row-id]")).toContainText("Старый снимок")
|
||||
let started=false,release!:()=>void;const gate=new Promise<void>(resolve=>{release=resolve})
|
||||
await page.route("**/api/recursive-routes*",async r=>{
|
||||
const u=new URL(r.request().url());if(u.port!=="8000"||u.pathname!=="/api/recursive-routes"||r.request().method()!==(operation==="read"?"GET":"PUT"))return r.fallback()
|
||||
await page.route("**/api/recursive-routes**",async r=>{
|
||||
const u=new URL(r.request().url());if(u.port!=="8000"||u.pathname!==(operation==="read"?"/api/recursive-routes/catalog":"/api/recursive-routes")||r.request().method()!==(operation==="read"?"GET":"PUT"))return r.fallback()
|
||||
started=true;await gate
|
||||
return r.fulfill(fails?{headers,status:503,json:{error:"Старая ошибка маршрутов"}}:{headers,json:operation==="read"?{serverId:1,routes:[],live:true,stale:false}:{ok:true,serverId:1,routes:r.request().postDataJSON().routes,pushedRoutes:r.request().postDataJSON().routes.length}})
|
||||
})
|
||||
@@ -29,7 +29,7 @@ for(const change of ["backend","mode"])for(const operation of ["read","write"])f
|
||||
await page.getByRole("link",{name:/^Рекурсивные маршруты/}).click()
|
||||
if(change==="backend")await expect(page.locator("tr[data-row-id]")).toContainText("Новый снимок")
|
||||
else await expect(page.getByText("Раздел работает в режиме",{exact:false})).toBeVisible()
|
||||
const before=newReads,response=page.waitForResponse(r=>new URL(r.url()).port==="8000"&&new URL(r.url()).pathname==="/api/recursive-routes"&&r.request().method()===(operation==="read"?"GET":"PUT"))
|
||||
const before=newReads,response=page.waitForResponse(r=>new URL(r.url()).port==="8000"&&new URL(r.url()).pathname===(operation==="read"?"/api/recursive-routes/catalog":"/api/recursive-routes")&&r.request().method()===(operation==="read"?"GET":"PUT"))
|
||||
release();await(await response).finished()
|
||||
await page.evaluate(()=>new Promise<void>(resolve=>requestAnimationFrame(()=>requestAnimationFrame(()=>resolve()))))
|
||||
if(change==="backend")await expect(page.locator("tr[data-row-id]")).toContainText("Новый снимок")
|
||||
|
||||
Reference in new issue
Block a user