fix: Fix mock-api login functionality

Squashed commit of the following:

commit 9022427d59290dfd2b08c4a076d6b0690d44d926
Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se>
Date:   Mon Sep 13 13:25:05 2021 +0200

    Update mock-apis
This commit is contained in:
Daniel Appelgren
2021-09-14 13:26:04 +02:00
parent 2a37566c38
commit 52cd7ad6f4
5 changed files with 45 additions and 24 deletions

View File

@@ -9,12 +9,16 @@ const AUTHORIZATIONS = ['Hantera användare', 'Hantera origisation', 'Hantera ek
function generateCurrentUser() {
return {
id: faker.datatype.uuid(),
ciamUserId: faker.datatype.uuid(),
firstName: faker.name.firstName(),
lastName: faker.name.lastName(),
roles: ['Admin'],
organizations: chooseRandom(ORGANIZATIONS, ORGANIZATIONS.length),
authorizations: chooseRandom(AUTHORIZATIONS, faker.datatype.number(3)),
email: faker.internet.email(),
roles: ['MSFA_AuthAdmin', 'MSFA_ReceiveDeltagare', 'MSFA_ReportAndPlanning', 'MSFA_Standard'],
ssn: '7010215791',
status: 'Enabled',
tjanster: [{ tjansteKod: 'A012', namn: 'Rusta och matcha' }],
allaUtforandeVerksamheter: true,
utforandeVerksamheter: [],
};
}

View File

@@ -2,6 +2,7 @@ import fs from 'fs';
import { authTokens } from './auth-tokens.js';
import avrop from './avrop.js';
import currentUser from './current-user.js';
import userinfo from './userinfo.js';
import deltagare from './deltagare.js';
import employees from './employees.js';
import handledare from './handledare.js';
@@ -9,12 +10,23 @@ import languages from './languages.js';
import participants from './participants.js';
import tjanster from './tjanster.js';
import chooseRandom from './utils/choose-random.util.js';
import organizations from './organizations.js';
const ORGANIZATIONS = organizations.generate();
const AUTHORIZATIONS = ['Hantera användare', 'Hantera origisation', 'Hantera ekonomi'];
const generatedEmployees = employees.generate(50);
const generatedDeltagare = deltagare.generate(50);
const generatedHandledare = handledare.generate(generatedEmployees.slice(0, 6));
const generatedAvrop = avrop.generate(10, generatedDeltagare.slice(0, 25), generatedHandledare);
const generatedTjanster = tjanster.generate();
const generatedCurrentUser = currentUser.generate();
const generatedOrganizations = chooseRandom(ORGANIZATIONS, ORGANIZATIONS.length);
const generatedUserinfo = {
...userinfo.generate(),
firstName: generatedCurrentUser.firstName,
lastName: generatedCurrentUser.lastName,
};
const avropTjanster = [];
const utforandeVerksamheter = [];
const avropKommuner = [];
@@ -96,7 +108,9 @@ const apiData = {
...participant,
employeeId: generatedEmployees[Math.floor(Math.random() * generatedEmployees.length)].id,
})),
currentUser: currentUser.generate(),
currentUser: generatedCurrentUser,
organizations: generatedOrganizations,
userinfo: generatedUserinfo,
getTokenFullAccess: authTokens.auth_code_from_CIAM_with_all_permissions,
invites: [],
minaDeltagare: chooseRandom(generatedAvrop, 3),

View File

@@ -8,7 +8,7 @@ function generateOrganizations(amount = 4) {
for (let i = 1; i <= amount; ++i) {
organizations.push({
name: faker.company.companyName(),
organizationNumber: faker.datatype.uuid(),
organizationnumber: faker.datatype.uuid(),
});
}

View File

@@ -0,0 +1,17 @@
import faker from 'faker';
import organizations from './organizations.js';
faker.locale = 'sv';
function generateUserInfo() {
return {
userId: faker.datatype.uuid(),
email: faker.internet.email(),
signature: 'mocky',
roles: ['MSFA_ReportAndPlanning', 'MSFA_ReceiveDeltagare', 'MSFA_Standard', 'MSFA_AuthAdmin'],
};
}
export default {
generate: generateUserInfo,
};

View File

@@ -12,15 +12,16 @@ server.use(
'*sort=utforandeVerksamhet*': '$1sort=utforandeVerksamhet[0]$2',
'*sort=tjanst*': '$1sort=tjanst[0]$2',
'/users/invite*': '/invites$1',
'/users*': '/employees$1',
'/employees*search=*': '/employees$1fullName_like=$2',
'/employees*onlyEmployeesWithoutAuthorization=*': '/employees$1roles.length_lte=1',
'/employees*': '/employees$1',
'/services*': '/tjanster$1',
'/participants': '/participants?_embed=employees',
'/participant/:id': '/participants/:id?_embed=employees',
'/auth/userinfo': '/currentUser',
'/auth/organizations': '/currentUser',
'/auth/userinfo': '/userinfo',
'/auth/organizations': '/organizations',
'/users/currentUser': '/currentUser',
'/users*': '/employees$1',
'/avrop/tjanster*': '/avropTjanster$1',
'/avrop/handledare*': '/handledare$1',
'/avrop/utforandeverksamheter*': '/utforandeVerksamheter$1',
@@ -80,25 +81,10 @@ router.render = (req, res) => {
}
let data = res.locals.data;
const employeeRegex = /(?:\/users\/)(.*)/;
const isEmployeePath = employeeRegex.exec(pathname);
const deltagareRegex = /(?:\/deltagare\/)(?:\d*\/)(contact|driverlicense|educationlevels\/highest|educations|translator|work\/disabilities|work\/languages|work\/experiences)/g;
const isDeltagarePath = deltagareRegex.exec(pathname);
const avropRegex = /(?:\/avrop\/(?:tjanster|utforandeverksamheter|kommuner|\d))|(?:\/deltagare\/\d\/(avrop))/g;
const isAvropPath = avropRegex.exec(pathname);
const authRegex = /(?:\/auth\/)(userinfo|organizations)/g;
const isAuthPath = authRegex.exec(pathname);
if (isAuthPath) {
const authSubPath = isAuthPath[1];
if (authSubPath === 'organizations') {
data = res.locals.data[authSubPath].map(organization => ({
name: organization.name,
organizationnumber: organization.organizationNumber,
}));
}
}
if (isDeltagarePath) {
const deltagareSubPath = getDeltagareSubPath(isDeltagarePath[1]);