1
0
mirror of https://github.com/sasjs/server.git synced 2025-12-11 03:34:35 +00:00

chore: Merge branch 'main' into fix-drive-path

This commit is contained in:
Saad Jutt
2022-04-20 06:53:31 +05:00
9 changed files with 54 additions and 56 deletions

View File

@@ -22,11 +22,13 @@ const { MODE, CORS, WHITELIST } = process.env
if (MODE?.trim() !== 'server' || CORS?.trim() === 'enable') { if (MODE?.trim() !== 'server' || CORS?.trim() === 'enable') {
const whiteList: string[] = [] const whiteList: string[] = []
WHITELIST?.split(' ')?.forEach((url) => { WHITELIST?.split(' ')
if (url.startsWith('http')) ?.filter((url) => !!url)
// removing trailing slash of URLs listing for CORS .forEach((url) => {
whiteList.push(url.replace(/\/$/, '')) if (url.startsWith('http'))
}) // removing trailing slash of URLs listing for CORS
whiteList.push(url.replace(/\/$/, ''))
})
console.log('All CORS Requests are enabled for:', whiteList) console.log('All CORS Requests are enabled for:', whiteList)
app.use(cors({ credentials: true, origin: whiteList })) app.use(cors({ credentials: true, origin: whiteList }))

View File

@@ -1,5 +1,4 @@
import express from 'express' import { Route, Tags, Example, Get } from 'tsoa'
import { Request, Security, Route, Tags, Example, Get } from 'tsoa'
export interface InfoResponse { export interface InfoResponse {
mode: string mode: string
@@ -29,7 +28,8 @@ export class InfoController {
process.env.CORS ?? process.env.MODE === 'server' process.env.CORS ?? process.env.MODE === 'server'
? 'disable' ? 'disable'
: 'enable', : 'enable',
whiteList: process.env.WHITELIST?.split(' ') ?? [], whiteList:
process.env.WHITELIST?.split(' ')?.filter((url) => !!url) ?? [],
protocol: process.env.PROTOCOL ?? 'http' protocol: process.env.PROTOCOL ?? 'http'
} }
return response return response

View File

@@ -18,11 +18,6 @@ import {
verifyTokenInDB verifyTokenInDB
} from '../../../utils' } from '../../../utils'
let app: Express
appPromise.then((_app) => {
app = _app
})
const clientId = 'someclientID' const clientId = 'someclientID'
const clientSecret = 'someclientSecret' const clientSecret = 'someclientSecret'
const user = { const user = {
@@ -35,12 +30,15 @@ const user = {
} }
describe('auth', () => { describe('auth', () => {
let app: Express
let con: Mongoose let con: Mongoose
let mongoServer: MongoMemoryServer let mongoServer: MongoMemoryServer
const userController = new UserController() const userController = new UserController()
const clientController = new ClientController() const clientController = new ClientController()
beforeAll(async () => { beforeAll(async () => {
app = await appPromise
mongoServer = await MongoMemoryServer.create() mongoServer = await MongoMemoryServer.create()
con = await mongoose.connect(mongoServer.getUri()) con = await mongoose.connect(mongoServer.getUri())
await clientController.createClient({ clientId, clientSecret }) await clientController.createClient({ clientId, clientSecret })

View File

@@ -6,11 +6,6 @@ import appPromise from '../../../app'
import { UserController, ClientController } from '../../../controllers/' import { UserController, ClientController } from '../../../controllers/'
import { generateAccessToken, saveTokensInDB } from '../../../utils' import { generateAccessToken, saveTokensInDB } from '../../../utils'
let app: Express
appPromise.then((_app) => {
app = _app
})
const client = { const client = {
clientId: 'someclientID', clientId: 'someclientID',
clientSecret: 'someclientSecret' clientSecret: 'someclientSecret'
@@ -28,12 +23,15 @@ const newClient = {
} }
describe('client', () => { describe('client', () => {
let app: Express
let con: Mongoose let con: Mongoose
let mongoServer: MongoMemoryServer let mongoServer: MongoMemoryServer
const userController = new UserController() const userController = new UserController()
const clientController = new ClientController() const clientController = new ClientController()
beforeAll(async () => { beforeAll(async () => {
app = await appPromise
mongoServer = await MongoMemoryServer.create() mongoServer = await MongoMemoryServer.create()
con = await mongoose.connect(mongoServer.getUri()) con = await mongoose.connect(mongoServer.getUri())
}) })

View File

@@ -33,11 +33,6 @@ import { getTreeExample } from '../../../controllers/internal'
import { generateAccessToken, saveTokensInDB } from '../../../utils/' import { generateAccessToken, saveTokensInDB } from '../../../utils/'
const { getTmpFilesFolderPath } = fileUtilModules const { getTmpFilesFolderPath } = fileUtilModules
let app: Express
appPromise.then((_app) => {
app = _app
})
const clientId = 'someclientID' const clientId = 'someclientID'
const user = { const user = {
displayName: 'Test User', displayName: 'Test User',
@@ -48,6 +43,7 @@ const user = {
} }
describe('drive', () => { describe('drive', () => {
let app: Express
let con: Mongoose let con: Mongoose
let mongoServer: MongoMemoryServer let mongoServer: MongoMemoryServer
const controller = new UserController() const controller = new UserController()
@@ -55,6 +51,8 @@ describe('drive', () => {
let accessToken: string let accessToken: string
beforeAll(async () => { beforeAll(async () => {
app = await appPromise
mongoServer = await MongoMemoryServer.create() mongoServer = await MongoMemoryServer.create()
con = await mongoose.connect(mongoServer.getUri()) con = await mongoose.connect(mongoServer.getUri())

View File

@@ -6,11 +6,6 @@ import appPromise from '../../../app'
import { UserController, GroupController } from '../../../controllers/' import { UserController, GroupController } from '../../../controllers/'
import { generateAccessToken, saveTokensInDB } from '../../../utils' import { generateAccessToken, saveTokensInDB } from '../../../utils'
let app: Express
appPromise.then((_app) => {
app = _app
})
const clientId = 'someclientID' const clientId = 'someclientID'
const adminUser = { const adminUser = {
displayName: 'Test Admin', displayName: 'Test Admin',
@@ -36,11 +31,14 @@ const userController = new UserController()
const groupController = new GroupController() const groupController = new GroupController()
describe('group', () => { describe('group', () => {
let app: Express
let con: Mongoose let con: Mongoose
let mongoServer: MongoMemoryServer let mongoServer: MongoMemoryServer
let adminAccessToken: string let adminAccessToken: string
beforeAll(async () => { beforeAll(async () => {
app = await appPromise
mongoServer = await MongoMemoryServer.create() mongoServer = await MongoMemoryServer.create()
con = await mongoose.connect(mongoServer.getUri()) con = await mongoose.connect(mongoServer.getUri())

View File

@@ -2,13 +2,19 @@ import { Express } from 'express'
import request from 'supertest' import request from 'supertest'
import appPromise from '../../../app' import appPromise from '../../../app'
let app: Express
describe('Info', () => { describe('Info', () => {
let app: Express
beforeAll(async () => {
app = await appPromise
})
it('should should return configured information of the server instance', async () => { it('should should return configured information of the server instance', async () => {
await appPromise.then((_app) => { const res = await request(app).get('/SASjsApi/info').expect(200)
app = _app
}) expect(res.body.mode).toEqual('server')
request(app).get('/SASjsApi/info').expect(200) expect(res.body.cors).toEqual('disable')
expect(res.body.whiteList).toEqual([])
expect(res.body.protocol).toEqual('http')
}) })
}) })

View File

@@ -6,11 +6,6 @@ import appPromise from '../../../app'
import { UserController } from '../../../controllers/' import { UserController } from '../../../controllers/'
import { generateAccessToken, saveTokensInDB } from '../../../utils' import { generateAccessToken, saveTokensInDB } from '../../../utils'
let app: Express
appPromise.then((_app) => {
app = _app
})
const clientId = 'someclientID' const clientId = 'someclientID'
const adminUser = { const adminUser = {
displayName: 'Test Admin', displayName: 'Test Admin',
@@ -30,10 +25,13 @@ const user = {
const controller = new UserController() const controller = new UserController()
describe('user', () => { describe('user', () => {
let app: Express
let con: Mongoose let con: Mongoose
let mongoServer: MongoMemoryServer let mongoServer: MongoMemoryServer
beforeAll(async () => { beforeAll(async () => {
app = await appPromise
mongoServer = await MongoMemoryServer.create() mongoServer = await MongoMemoryServer.create()
con = await mongoose.connect(mongoServer.getUri()) con = await mongoose.connect(mongoServer.getUri())
}) })

View File

@@ -7,22 +7,22 @@ export const connectDB = async () => {
// we should exclude connecting to the real database // we should exclude connecting to the real database
if (process.env.NODE_ENV === 'test') { if (process.env.NODE_ENV === 'test') {
return return
} else {
const { MODE } = process.env
if (MODE?.trim() !== 'server') {
console.log('Running in Destop Mode, no DB to connect.')
return
}
mongoose.connect(process.env.DB_CONNECT as string, async (err) => {
if (err) throw err
console.log('Connected to db!')
await seedDB()
await populateClients()
})
} }
const { MODE } = process.env
if (MODE?.trim() !== 'server') {
console.log('Running in Destop Mode, no DB to connect.')
return
}
mongoose.connect(process.env.DB_CONNECT as string, async (err) => {
if (err) throw err
console.log('Connected to db!')
await seedDB()
await populateClients()
})
} }