mirror of https://github.com/MaxLeiter/Drift
server: add basic is-admin tests and bug fixes
parent
06d847dfa3
commit
e5b9b65b55
@ -0,0 +1,17 @@
|
|||||||
|
import getHtmlFromFile from "@lib/get-html-from-drift-file"
|
||||||
|
|
||||||
|
describe("get-html-from-drift-file", () => {
|
||||||
|
it("should not wrap markdown in code blocks", () => {
|
||||||
|
const markdown = `## My Markdown`
|
||||||
|
const html = getHtmlFromFile({ content: markdown, title: "my-markdown.md" })
|
||||||
|
// the string is <h2><a href=\"#my-markdown\" id=\"my-markdown\" style=\"color:inherit\">My Markdown</a></h2>,
|
||||||
|
// but we dont wan't to be too strict in case markup changes
|
||||||
|
expect(html).toMatch(/<h2><a.*<\/a><\/h2>/)
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should wrap code in code blocks", () => {
|
||||||
|
const code = `const foo = "bar"`
|
||||||
|
const html = getHtmlFromFile({ content: code, title: "my-code.js" })
|
||||||
|
expect(html).toMatch(/<pre><code class="prism-code language-js">/)
|
||||||
|
})
|
||||||
|
})
|
||||||
@ -0,0 +1,50 @@
|
|||||||
|
// import * as request from 'supertest'
|
||||||
|
// import { app } from '../../../app'
|
||||||
|
import { NextFunction, Response } from "express"
|
||||||
|
import isAdmin from "@lib/middleware/is-admin"
|
||||||
|
import { UserJwtRequest } from "@lib/middleware/jwt"
|
||||||
|
|
||||||
|
describe("is-admin middlware", () => {
|
||||||
|
let mockRequest: Partial<UserJwtRequest>
|
||||||
|
let mockResponse: Partial<Response>
|
||||||
|
let nextFunction: NextFunction = jest.fn()
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
mockRequest = {}
|
||||||
|
mockResponse = {
|
||||||
|
sendStatus: jest.fn()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should return 401 if no authorization header", async () => {
|
||||||
|
const res = mockResponse as Response
|
||||||
|
isAdmin(mockRequest as UserJwtRequest, res, nextFunction)
|
||||||
|
expect(res.sendStatus).toHaveBeenCalledWith(401)
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should return 401 if no token is supplied", async () => {
|
||||||
|
const req = mockRequest as UserJwtRequest
|
||||||
|
req.headers = {
|
||||||
|
authorization: "Bearer"
|
||||||
|
}
|
||||||
|
isAdmin(req, mockResponse as Response, nextFunction)
|
||||||
|
expect(mockResponse.sendStatus).toBeCalledWith(401)
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should return 404 if config.enable_admin is false", async () => {
|
||||||
|
jest.mock("../../config", () => ({
|
||||||
|
enable_admin: false
|
||||||
|
}))
|
||||||
|
|
||||||
|
const req = mockRequest as UserJwtRequest
|
||||||
|
req.headers = {
|
||||||
|
authorization: "Bearer 123"
|
||||||
|
}
|
||||||
|
isAdmin(req, mockResponse as Response, nextFunction)
|
||||||
|
expect(mockResponse.sendStatus).toBeCalledWith(404)
|
||||||
|
})
|
||||||
|
|
||||||
|
// TODO: 403 if !isAdmin
|
||||||
|
// Verify it calls next() if admin
|
||||||
|
// Requires mocking config.enable_admin
|
||||||
|
})
|
||||||
Loading…
Reference in New Issue