1
0
mirror of https://github.com/sasjs/server.git synced 2026-01-06 06:10:04 +00:00

feat: cli mock testing

This commit is contained in:
2022-10-11 18:37:20 +02:00
parent 0a6b972c65
commit 6434123401
13 changed files with 166 additions and 18 deletions

View File

@@ -3,6 +3,7 @@ import sas9WebRouter from './sas9-web'
import sasViyaWebRouter from './sasviya-web'
import webRouter from './web'
import { MOCK_SERVERTYPEType } from '../../utils'
import { csrfProtection } from '../../middlewares'
const router = express.Router()
@@ -18,7 +19,7 @@ switch (MOCK_SERVERTYPE) {
break
}
default: {
router.use('/', webRouter)
router.use('/', csrfProtection, webRouter)
}
}

View File

@@ -2,6 +2,12 @@ import express from 'express'
import { generateCSRFToken } from '../../middlewares'
import { WebController } from '../../controllers'
import { MockSas9Controller } from '../../controllers/mock-sas9'
import fs from 'fs'
import multer from 'multer'
import path from 'path'
import dotenv from 'dotenv'
dotenv.config()
const sas9WebRouter = express.Router()
const webController = new WebController()
@@ -9,6 +15,12 @@ const webController = new WebController()
// for example `isLoggedIn` and potentially more in future mocks
const controller = new MockSas9Controller()
const mockPath = process.env.STATIC_MOCK_LOCATION || 'mocks'
const upload = multer({
dest: path.join(process.cwd(), mockPath, 'sas9', 'files-recieved')
})
sas9WebRouter.get('/', async (req, res) => {
let response
try {
@@ -27,7 +39,7 @@ sas9WebRouter.get('/', async (req, res) => {
})
sas9WebRouter.get('/SASStoredProcess', async (req, res) => {
const response = await controller.sasStoredProcess()
const response = await controller.sasStoredProcess(req)
if (response.redirect) {
res.redirect(response.redirect)
@@ -41,8 +53,29 @@ sas9WebRouter.get('/SASStoredProcess', async (req, res) => {
}
})
sas9WebRouter.post('/SASStoredProcess/do/', async (req, res) => {
const response = await controller.sasStoredProcessDo(req)
sas9WebRouter.get('/SASStoredProcess/do/', async (req, res) => {
const response = await controller.sasStoredProcessDoGet(req)
if (response.redirect) {
res.redirect(response.redirect)
return
}
try {
res.send(response.content)
} catch (err: any) {
res.status(403).send(err.toString())
}
})
sas9WebRouter.post('/SASStoredProcess/do/', upload.any(), async (req, res) => {
const response = await controller.sasStoredProcessDoPost(req)
if (req.files) {
;(req.files as any).forEach((file: any) => {
fs.renameSync(file.path, file.destination + '/' + file.fieldname)
})
}
if (response.redirect) {
res.redirect(response.redirect)