Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kjør mock kun for nytt GUI #1156

Closed
23 tasks done
allinox opened this issue Nov 19, 2024 · 0 comments
Closed
23 tasks done

Kjør mock kun for nytt GUI #1156

allinox opened this issue Nov 19, 2024 · 0 comments
Assignees
Labels
Frontend This is a frontend task kind/chore Create a none user-story issue (chore, tech issue, backend issue)

Comments

@allinox
Copy link
Contributor

allinox commented Nov 19, 2024

Beskrivelse

Intill videre er vi avhengige av mocket data for å kjøre nytt GUI, og dette kommer nok ikke til å endre seg i nærmeste fremtid.
Mens utvikling pågår er det ønskelig å kunne kjøre med mock også ute i miljøene, men vi er per nå hindret fra å gjøre dette fordi mocking av nytt GUI nå medfører at løsninger som allerede er lansert (APIDelegering og Enkelttjenestedelegering) vil låses til mockdata de også. Dette er problematisk fordi vi trenger å kunne kjøre tester på dem med bruk av reell backend og fordi tjenesteeiere bruker disse løsningene.

Det er uheldig at det vi utvikler nå ikke er tilgjengelig utenfor lokal kjøring (ikke minst fordi det gjør det vanskeligere for andre å teste det). Vi vil dermed prøve å løse dette problemet ved å separere opp mocken slik at nytt GUI og gamle lønsinger kan kjøre hhv med og uten mock uavhengig av hverandre.

Foreslått løsning: Dele IAccessManagementClient i to

Hovedproblemet vårt ligger i klienten for AccessManagement, som også er den som har høyest grad av mocking. Denne klienten brukes av både nytt og gammelt GUI.
Det er imidlertid slik at, i den nye løsningen, så skal samtlige av AM backend sine api erstattes med nye, selv de som allerede er i bruk. Dette betyr at vi heller kan separere gamle og nye backend API i to klienter og la gamle kjøre uten mock og nye med mock. Vi vil da gå fra én IAccessManagementClient, til to:

  • IAccessManagementClientV0: Implementert gjennom AccessManagementClientV0 og AccessManagementClientV0Mock
  • IAccessManagementClient: Implementert gjennom AccessManagementClient og AccessManagementClientMock

Til nå har vi tatt i bruk gamle (eksisterende) endepunkt der det er mulig, men hvis vi bytter til å gå mot nye (ikke-eksisterende) endepunkter i backend der også, så vil vi få et clean break, uten overlapp mellom de to klient-interfacene

Dette vil selvfølgelig medføre ringvirkninger ellers i løsningen, og vi vil trenge nye endepunkter i BFFen for bruk av de nye klientene.
Dette vil sannsynligvis påvirke SingleRights mest, som vil kreve opprettelsen av separate endepunkt for ny og gammelt GUI (overlapp her er i delegering og accessCheck-endepunktene)
Vi kan vurdere om det er hensiktsmessig å også dele opp SingleRightsControlleren i to filer, eller om vi bare skal fordele nye og gamle endepunkt i samme fil. Siden det kun er et par endepunkt som har overlapp så er det kanskje like greit å beholde dem i samme og bare navngi de overlappende forskjellig. Da slipper vi å lage nye filer for test også.

To do's

  • BFF:
    • Lag nye klient-interfaces: IAccessManagementClientV0 og IAccessManagementClient
      • Metoder brukt av gammelt GUI skal i V0, de brukt i det nye skal i den andre
      • Lag ny metode for delegationCheck for bruk i nytt GUI
      • Lag ny metode for Delegation for bruk i nytt GUI
    • Lag implementasjon av de nye klientene
      • Flytt over eksisterende kode
      • Lag ny metode for delegationCheck for bruk i nytt GUI
      • Lag ny metode for Delegation for bruk i nytt GUI
    • Lag mock-implementasjon av de nye klientene
      • Flytt over eksisterende kode
      • Lag ny metode for delegationCheck for bruk i nytt GUI
      • Lag ny metode for Delegation for bruk i nytt GUI
    • Oppdater Program.cs og miljøvariablene slik at man kan skru på full mock eller mock bare av nytt GUI. I sistnevnte skal kun IAccessManagementClient mockes.
    • Oppdater SingleRightController med nye endepunkt for delegationCheck og delegation
    • Oppdater SingleRIghtService til å bruke begge de to AccessManagement-klientene, hhv til hver sine metoder
      • Oppdater edit til å bruke ny metode for delegering
      • Oppdater UserService til å bruke V0 til uthenting av party fra reportee list (GetPartyFromReporteeListIfExists)
    • Oppdater andre servicer som brukte den gamle AM-klienten til å heller bruke en av de nye. (APIDelegation skal bruke gammel)
  • React:
    • Oppdater SingleRightApi til å bruke nye endepunkt for delegate og accesscheck for det nye GUIet
    • Gammelt GUI bruke kun SingleRightSlice som allerede er et duplikat så denne trenger ikke endres med mindre urlen til de gamle endepunktene også endres
  • Test vigorously!!!
@allinox allinox added Task Represents a concrete piece of work to be performed Frontend This is a frontend task labels Nov 19, 2024
@allinox allinox removed the Task Represents a concrete piece of work to be performed label Nov 19, 2024
@allinox allinox added the kind/chore Create a none user-story issue (chore, tech issue, backend issue) label Nov 19, 2024
@allinox allinox moved this from New to Ready for Sprint in Team Tilgangsstyring & Kontroll Nov 19, 2024
@allinox allinox moved this from Ready for Sprint to Sprint backlog in Team Tilgangsstyring & Kontroll Dec 2, 2024
@allinox allinox self-assigned this Dec 2, 2024
@allinox allinox moved this from Sprint backlog to 👷In Progress in Team Tilgangsstyring & Kontroll Dec 9, 2024
@allinox allinox moved this from 👷In Progress to 🔎Review in Team Tilgangsstyring & Kontroll Dec 19, 2024
@allinox allinox closed this as completed Jan 2, 2025
@github-project-automation github-project-automation bot moved this from 🔎Review to ✅ Done in Team Tilgangsstyring & Kontroll Jan 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Frontend This is a frontend task kind/chore Create a none user-story issue (chore, tech issue, backend issue)
Projects
Status: ✅ Done
Development

No branches or pull requests

1 participant