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() { function generateCurrentUser() {
return { return {
id: faker.datatype.uuid(), ciamUserId: faker.datatype.uuid(),
firstName: faker.name.firstName(), firstName: faker.name.firstName(),
lastName: faker.name.lastName(), lastName: faker.name.lastName(),
roles: ['Admin'], email: faker.internet.email(),
organizations: chooseRandom(ORGANIZATIONS, ORGANIZATIONS.length), roles: ['MSFA_AuthAdmin', 'MSFA_ReceiveDeltagare', 'MSFA_ReportAndPlanning', 'MSFA_Standard'],
authorizations: chooseRandom(AUTHORIZATIONS, faker.datatype.number(3)), 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 { authTokens } from './auth-tokens.js';
import avrop from './avrop.js'; import avrop from './avrop.js';
import currentUser from './current-user.js'; import currentUser from './current-user.js';
import userinfo from './userinfo.js';
import deltagare from './deltagare.js'; import deltagare from './deltagare.js';
import employees from './employees.js'; import employees from './employees.js';
import handledare from './handledare.js'; import handledare from './handledare.js';
@@ -9,12 +10,23 @@ import languages from './languages.js';
import participants from './participants.js'; import participants from './participants.js';
import tjanster from './tjanster.js'; import tjanster from './tjanster.js';
import chooseRandom from './utils/choose-random.util.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 generatedEmployees = employees.generate(50);
const generatedDeltagare = deltagare.generate(50); const generatedDeltagare = deltagare.generate(50);
const generatedHandledare = handledare.generate(generatedEmployees.slice(0, 6)); const generatedHandledare = handledare.generate(generatedEmployees.slice(0, 6));
const generatedAvrop = avrop.generate(10, generatedDeltagare.slice(0, 25), generatedHandledare); const generatedAvrop = avrop.generate(10, generatedDeltagare.slice(0, 25), generatedHandledare);
const generatedTjanster = tjanster.generate(); 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 avropTjanster = [];
const utforandeVerksamheter = []; const utforandeVerksamheter = [];
const avropKommuner = []; const avropKommuner = [];
@@ -96,7 +108,9 @@ const apiData = {
...participant, ...participant,
employeeId: generatedEmployees[Math.floor(Math.random() * generatedEmployees.length)].id, 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, getTokenFullAccess: authTokens.auth_code_from_CIAM_with_all_permissions,
invites: [], invites: [],
minaDeltagare: chooseRandom(generatedAvrop, 3), minaDeltagare: chooseRandom(generatedAvrop, 3),

View File

@@ -8,7 +8,7 @@ function generateOrganizations(amount = 4) {
for (let i = 1; i <= amount; ++i) { for (let i = 1; i <= amount; ++i) {
organizations.push({ organizations.push({
name: faker.company.companyName(), 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=utforandeVerksamhet*': '$1sort=utforandeVerksamhet[0]$2',
'*sort=tjanst*': '$1sort=tjanst[0]$2', '*sort=tjanst*': '$1sort=tjanst[0]$2',
'/users/invite*': '/invites$1', '/users/invite*': '/invites$1',
'/users*': '/employees$1',
'/employees*search=*': '/employees$1fullName_like=$2', '/employees*search=*': '/employees$1fullName_like=$2',
'/employees*onlyEmployeesWithoutAuthorization=*': '/employees$1roles.length_lte=1', '/employees*onlyEmployeesWithoutAuthorization=*': '/employees$1roles.length_lte=1',
'/employees*': '/employees$1', '/employees*': '/employees$1',
'/services*': '/tjanster$1', '/services*': '/tjanster$1',
'/participants': '/participants?_embed=employees', '/participants': '/participants?_embed=employees',
'/participant/:id': '/participants/:id?_embed=employees', '/participant/:id': '/participants/:id?_embed=employees',
'/auth/userinfo': '/currentUser', '/auth/userinfo': '/userinfo',
'/auth/organizations': '/currentUser', '/auth/organizations': '/organizations',
'/users/currentUser': '/currentUser',
'/users*': '/employees$1',
'/avrop/tjanster*': '/avropTjanster$1', '/avrop/tjanster*': '/avropTjanster$1',
'/avrop/handledare*': '/handledare$1', '/avrop/handledare*': '/handledare$1',
'/avrop/utforandeverksamheter*': '/utforandeVerksamheter$1', '/avrop/utforandeverksamheter*': '/utforandeVerksamheter$1',
@@ -80,25 +81,10 @@ router.render = (req, res) => {
} }
let data = res.locals.data; 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 deltagareRegex = /(?:\/deltagare\/)(?:\d*\/)(contact|driverlicense|educationlevels\/highest|educations|translator|work\/disabilities|work\/languages|work\/experiences)/g;
const isDeltagarePath = deltagareRegex.exec(pathname); const isDeltagarePath = deltagareRegex.exec(pathname);
const avropRegex = /(?:\/avrop\/(?:tjanster|utforandeverksamheter|kommuner|\d))|(?:\/deltagare\/\d\/(avrop))/g; const avropRegex = /(?:\/avrop\/(?:tjanster|utforandeverksamheter|kommuner|\d))|(?:\/deltagare\/\d\/(avrop))/g;
const isAvropPath = avropRegex.exec(pathname); 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) { if (isDeltagarePath) {
const deltagareSubPath = getDeltagareSubPath(isDeltagarePath[1]); const deltagareSubPath = getDeltagareSubPath(isDeltagarePath[1]);