Skip to content
Snippets Groups Projects
Commit fdf120f1 authored by Sigmund, Dominik's avatar Sigmund, Dominik
Browse files

Merge branch 'develop' into 'main'

Fix tests

See merge request !4
parents ee9dc0fa 67ae9cfa
Branches
Tags 2.3.0
1 merge request!4Fix tests
Pipeline #8288 passed
......@@ -8,8 +8,9 @@ Sets Headers to a very save style. may be overriden by config.
## Usage
`const security = require('@libs/security')`
`app.use(security(options))`
`const Security = require('@libs/security')`
`const security = new Security(options)`
`app.use(security.setHeaders)`
## Options
......
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -2,16 +2,17 @@ const express = require('express')
const fs = require('fs')
const http = require('http')
const https = require('https')
const security = require('../../index')
const Security = require('../../index')
const security = Security({
onlyDefinedRoutes: true,
definedRoutes: ['/', 'REGEX:\\/id\\/\\d{1,}']
})
const app = express()
app.use(security({
onlyDefinedRoutes: true,
definedRoutes: ['/', 'REGEX:\\/id\\/\\d{1,}']
}))
app.use(security.setHeaders)
app.get('/', function (req, res) {
res.send('Hello World!')
......
......
const express = require('express')
const security = require('../../index')
const app = express()
app.use(security({
const Security = require('../../index')
const security = Security({
CacheControl: 'public, max-age=9999999999',
Pragma: false,
Expires: 'Wed, 21 Oct 2090 07:28:00 GMT',
......@@ -19,7 +16,11 @@ app.use(security({
ReferrerPolicy: 'unsafe-url',
allowedMethods: ['HEAD', 'GET', 'OPTIONS'],
onlyDefinedRoutes: false
}))
})
const app = express()
app.use(security.setHeaders)
app.get('/', function (req, res) {
res.send('Hello World!')
......
......
......@@ -4,5 +4,5 @@ export = Security;
declare class Security {
constructor();
setHeaders(req: express.Request, res: express.Response, next: express.NextFunctiont): void;
setHeaders(): void;
}
......@@ -3,9 +3,11 @@ module.exports = function(options = {}) {
let security = {}
security.options = options
security.setHeaders = function(req, res, next) {
if(!this.options) options = {}
else options = this.options
if(!security.options) options = {}
else options = security.options
if (typeof options.CacheControl === 'undefined') {
options.CacheControl = 'no-cache, no-store, must-revalidate'
......
......
......@@ -62,7 +62,7 @@ describe('Unit Tests', () => {
describe('Header: X-Powered-By', () => {
it('should remove Header if not defined', (done) => {
let sec = security()
sec(mockReq, mockRes, () => {
sec.setHeaders(mockReq, mockRes, () => {
expect(mockRes._headers['X-Powered-By']).toBeUndefined()
done()
})
......@@ -71,7 +71,7 @@ describe('Unit Tests', () => {
let options = {}
options.XPoweredBy = false
let sec = security(options)
sec(mockReq, mockRes, () => {
sec.setHeaders(mockReq, mockRes, () => {
expect(mockRes._headers['X-Powered-By']).toBeDefined()
done()
})
......@@ -87,10 +87,10 @@ describe('Unit Tests', () => {
it('should only allow GET, POST, PUT, DELETE on default', (done) => {
let sec = security()
mockReq._setMethod('GET')
sec(mockReq, mockRes, () => {
sec.setHeaders(mockReq, mockRes, () => {
expect(mockRes._status).toBe(200)
mockReq._setMethod('HEAD')
sec(mockReq, mockRes, () => {
sec.setHeaders(mockReq, mockRes, () => {
expect(mockRes._status).toBe(405)
done()
})
......@@ -101,10 +101,10 @@ describe('Unit Tests', () => {
allowedMethods: ['POST']
})
mockReq._setMethod('POST')
sec(mockReq, mockRes, () => {
sec.setHeaders(mockReq, mockRes, () => {
expect(mockRes._status).toBe(200)
mockReq._setMethod('GET')
sec(mockReq, mockRes, () => {
sec.setHeaders(mockReq, mockRes, () => {
expect(mockRes._status).toBe(405)
done()
})
......@@ -115,10 +115,10 @@ describe('Unit Tests', () => {
it('should allow all routes by default', (done) => {
let sec = security()
mockReq._setUrl('/')
sec(mockReq, mockRes, () => {
sec.setHeaders(mockReq, mockRes, () => {
expect(mockRes._status).toBe(200)
mockReq._setUrl('/test')
sec(mockReq, mockRes, () => {
sec.setHeaders(mockReq, mockRes, () => {
expect(mockRes._status).toBe(200)
done()
})
......@@ -130,10 +130,10 @@ describe('Unit Tests', () => {
definedRoutes: ['/']
})
mockReq._setUrl('/')
sec(mockReq, mockRes, () => {
sec.setHeaders(mockReq, mockRes, () => {
expect(mockRes._status).toBe(200)
mockReq._setUrl('/test')
sec(mockReq, mockRes, () => {
sec.setHeaders(mockReq, mockRes, () => {
expect(mockRes._status).toBe(405)
done()
})
......@@ -290,7 +290,7 @@ function headerUnitTest (header, headerOption, defaultValue) {
describe('Header: ' + header, () => {
it('should set "' + defaultValue + '" if not defined', (done) => {
let sec = security()
sec(mockReq, mockRes, () => {
sec.setHeaders(mockReq, mockRes, () => {
expect(mockRes._headers[header]).toBe(defaultValue)
done()
})
......@@ -299,7 +299,7 @@ function headerUnitTest (header, headerOption, defaultValue) {
let options = {}
options[headerOption] = false
let sec = security(options)
sec(mockReq, mockRes, () => {
sec.setHeaders(mockReq, mockRes, () => {
expect(mockRes._headers[header]).toBeUndefined()
done()
})
......@@ -308,7 +308,7 @@ function headerUnitTest (header, headerOption, defaultValue) {
let options = {}
options[headerOption] = 'somevalue'
let sec = security(options)
sec(mockReq, mockRes, () => {
sec.setHeaders(mockReq, mockRes, () => {
expect(mockRes._headers[header]).toBe('somevalue')
done()
})
......@@ -355,7 +355,8 @@ function headerIntegrationTest (header, headerOption, defaultValue) {
}
function startUpServer(options) {
app = express()
app.use(security(options))
let sec = security(options)
app.use(sec.setHeaders)
app.get('/', function (req, res) {
res.send('Hello World!')
})
......
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment