import OB from "@onebro/oba-common"; import {J} from "../../utils"; import { ControllerTestData, ControllerTestFunc, ControllerNetwork } from "../types"; export type userAcctControllerTestData = { create$:ControllerTestData["users"]["create$"]; fetch$:ControllerTestData["users"]["fetch$"]; update$:ControllerTestData["users"]["update$"]; query$:ControllerTestData["users"]["query$"]; }; export const userAcctControllerTestData:userAcctControllerTestData = { create$:O => [ { body:{ email:O.users.john + "@gmail.com", role:"ADMIN", permissions:{cookies:new Date(),location:new Date()}, settings:{lang:"en",version:"1.1.1",app:{}}, devices:[O.devices.jack], }, appuser:{ name:O.users.jack, device:O.devices.jack, okto:"use-api", next:"123456", role:"GUEST" as any, } },{ body:{ email:O.users.jim + "@gmail.com", role:"ADMIN", permissions:{cookies:new Date(),location:new Date()}, devices:[O.devices.jim], settings:{lang:"en",version:"1.1.1",app:{}}, }, appuser:{ name:O.users.jack, device:O.devices.jack, okto:"use-api", next:"123456", role:"GUEST" as any, } },{ body:{ email:O.users.jenn + "@gmail.com", role:"ADMIN", permissions:{cookies:new Date(),location:new Date()}, devices:[O.devices.jenn], settings:{lang:"en",version:"1.1.1",app:{}}, }, appuser:{ name:O.users.jack, device:O.devices.jack, okto:"use-api", next:"123456", role:"GUEST" as any, } }, ], fetch$:O => [ { params:{id:O.jsons.users[0].id}, appuser:{ name:O.users.jack, device:O.devices.jack, okto:"use-api", next:"123456", role:"GUEST" as any, } },{ params:{email:O.jsons.users[1].email}, appuser:{ name:O.users.jack, device:O.devices.jack, okto:"use-api", next:"123456", role:"GUEST" as any, } }, ], update$:O => [ { params:{id:O.jsons.users[0].id}, body:{ $set:{ email:O.users.jack + "@gmail.com", phn:"+1-333-333-3333", dob:"01/01/2001", username:O.users.jack, name:{first:"Jack",last:"Allday"}, status:{name:"Enabled",time:new Date()}, hometown:"Houston, TX", loc:{str:"//Houston//Tx//"}, acct:"PLT1", "settings.data":{...O.jsons.users[0].settings?.data,timeout:3600}, "settings.app.withBal":true, "settings.app.optionsOnly":true, "permissions.video":new Date(), "meta.loggedIn":new Date(), "meta.verified":new Date(), }, $push:{scopes:["update$-user-acct"]}, }, appuser:{ name:O.users.jack, device:O.devices.jack, okto:"use-api", next:"123456", role:"GUEST" as any, } },{ params:{id:O.jsons.users[1].id}, body:{ $set:{ username:O.users.jim, name:{first:"Jim",last:"AllDay"}, status:{name:"Enabled" as any,time:new Date()}, "settings.data":{...O.jsons.users[1].settings?.data,timeout:3600}, "settings.app.withBal":true, "settings.app.optionsOnly":true, "permissions.video":new Date(), } }, appuser:{ name:O.users.jim, device:O.devices.jim, okto:"use-api", next:"123456", role:"GUEST" as any, } },{ params:{id:O.jsons.users[2].id}, body:{ $set:{ username:O.users.jenn, name:{first:"Jenn",last:"AllDay"}, status:{name:"Enabled" as any,time:new Date()}, "settings.data":{...O.jsons.users[2].settings?.data,timeout:3600}, "settings.app.withBal":true, "settings.app.optionsOnly":true, "permissions.video":new Date() } }, appuser:{ name:O.users.jenn, device:O.devices.jenn, okto:"use-api", next:"123456", role:"GUEST" as any, } }, ], query$:O => [ { query:{query:{email:O.users.jack},select:"json"}, appuser:{ name:O.users.jack, device:O.devices.jack, okto:"use-api", next:"123456", role:"GUEST" as any, } },{ query:{query:{email:O.users.john},select:"json"}, appuser:{ name:O.users.jack, device:O.devices.jack, okto:"use-api", next:"123456", role:"GUEST" as any, } },{ query:{query:{role:"USER"},select:"json"}, appuser:{ name:O.users.jack, device:O.devices.jack, okto:"use-api", next:"123456", role:"GUEST" as any, } }, ], }; export type userAcctControllerTests = { create$:ControllerTestFunc["users"]["create$"]; fetch$:ControllerTestFunc["users"]["fetch$"]; updateSetAndPush$:ControllerTestFunc["users"]["update$"]; updatePull$:ControllerTestFunc["users"]["update$"]; fetchFinal$:ControllerTestFunc["users"]["fetch$"]; query$:ControllerTestFunc["users"]["query$"]; }; export const userAcctControllerTests:userAcctControllerTests = { create$:async O => { const C = userAcctControllerTestData.create$(O); for(let i = 0,l = C.length;i { const F = userAcctControllerTestData.fetch$(O); for(let i = 0,l = F.length;i { const U = userAcctControllerTestData.update$(O); for(let i = 0,l = U.length;i { const U = userAcctControllerTestData.update$(O); for(let i = 0,l = U.length;i { const F = userAcctControllerTestData.fetch$(O); const {data:o} = await O.controllers.users.fetch$(F[0]); J.is(o); J.not(o,null); J.is(o.status?.name,"Enabled"); J.is(o.email,O.users.jack+"@gmail.com"); J.is(o.username,O.users.jack); J.is(o.role,"ADMIN"); }, query$:async O => { const Q = userAcctControllerTestData.query$(O); for(let i = 0,l = Q.length;i J.desc("UserAccts",() => { it("Create",async () => await userAcctControllerTests.create$(O),1E9); it("Fetch",async () => await userAcctControllerTests.fetch$(O),1E9); it("Update - Set & Push",async () => await userAcctControllerTests.updateSetAndPush$(O),1E9); it("Update - Pull",async () => await userAcctControllerTests.updatePull$(O),1E9); it("Fetch - Final Check",async () => await userAcctControllerTests.fetchFinal$(O),1E9); it("Query",async () => await userAcctControllerTests.query$(O),1E9); });