mirror of https://github.com/Wilfred/difftastic/
Making the JS sample file more interesting
Use a file pair that have both additions and removalspull/25/head
parent
7dd2825254
commit
44ae3a980f
@ -1,48 +1,109 @@
|
||||
const createError = require("http-errors");
|
||||
const express = require("express");
|
||||
const exphbs = require("express-handlebars");
|
||||
const path = require("path");
|
||||
|
||||
const indexRouter = require("./routes/index");
|
||||
const pageRouter = require("./routes/pages");
|
||||
const editingRouter = require("./routes/editing");
|
||||
const SITE_NAME = require("./config").SITE_NAME;
|
||||
|
||||
const app = express();
|
||||
|
||||
app.engine(".html", exphbs({ extname: ".html", helpers: { SITE_NAME } }));
|
||||
app.set("view engine", ".html");
|
||||
|
||||
app.use(
|
||||
"/static/semantic/",
|
||||
express.static(path.join(__dirname, "node_modules", "semantic-ui-css"))
|
||||
);
|
||||
app.use(
|
||||
"/static/font-awesome/",
|
||||
express.static(path.join(__dirname, "node_modules", "font-awesome"))
|
||||
);
|
||||
|
||||
app.use("/static/", express.static(path.join(__dirname, "static")));
|
||||
|
||||
app.use("/", indexRouter);
|
||||
app.use("/", editingRouter);
|
||||
// Needs to come last, so we register /:name after other routes.
|
||||
app.use("/", pageRouter);
|
||||
|
||||
// catch 404 and forward to error handler
|
||||
app.use(function(req, res, next) {
|
||||
next(createError(404));
|
||||
const request = require("supertest");
|
||||
const app = require("./app");
|
||||
const db = require("./db");
|
||||
|
||||
beforeAll(done => {
|
||||
db.init(done);
|
||||
});
|
||||
|
||||
describe("Authentication", () => {
|
||||
test("/edit GET", done => {
|
||||
request(app)
|
||||
.get("/edit/Foo")
|
||||
.then(res => {
|
||||
expect(res.statusCode).toBe(401);
|
||||
expect(res.headers["www-authenticate"]).toBe("Basic");
|
||||
done();
|
||||
});
|
||||
});
|
||||
test("/edit POST", done => {
|
||||
db.createPage("EditAuthExample", "foo bar", (err, page) => {
|
||||
expect(err).toBeNull();
|
||||
|
||||
request(app)
|
||||
.post("/edit/" + page.rowid)
|
||||
.type("form")
|
||||
.send({ name: "EditPostExample", content: "hello world" })
|
||||
.then(res => {
|
||||
expect(res.statusCode).toBe(401);
|
||||
expect(res.headers["www-authenticate"]).toBe("Basic");
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
test("/new GET", done => {
|
||||
request(app)
|
||||
.get("/new")
|
||||
.then(res => {
|
||||
expect(res.statusCode).toBe(401);
|
||||
expect(res.headers["www-authenticate"]).toBe("Basic");
|
||||
done();
|
||||
});
|
||||
});
|
||||
test("/new POST", done => {
|
||||
request(app)
|
||||
.post("/new")
|
||||
.type("form")
|
||||
.send({ name: "FooBarBaz", content: "hello world" })
|
||||
.expect(401, done);
|
||||
});
|
||||
});
|
||||
|
||||
// error handler
|
||||
app.use(function(err, req, res) {
|
||||
// set locals, only providing error in development
|
||||
res.locals.message = err.message;
|
||||
res.locals.error = req.app.get("env") === "development" ? err : {};
|
||||
const ADMIN_PASSWORD = process.env.ADMIN_PASSWORD || "admin";
|
||||
|
||||
// render the error page
|
||||
res.status(err.status || 500);
|
||||
res.render("error");
|
||||
describe("Editing", () => {
|
||||
test("/new GET", done => {
|
||||
request(app)
|
||||
.get("/new")
|
||||
.auth("admin", ADMIN_PASSWORD)
|
||||
.expect(200, done);
|
||||
});
|
||||
test("/new POST", done => {
|
||||
request(app)
|
||||
.post("/new")
|
||||
.type("form")
|
||||
.send({ name: "FooBar", content: "hello world" })
|
||||
.auth("admin", ADMIN_PASSWORD)
|
||||
.expect(302, done);
|
||||
});
|
||||
|
||||
test("/edit GET", done => {
|
||||
db.createPage("EditGetExample", "foo bar", (err, page) => {
|
||||
expect(err).toBeNull();
|
||||
|
||||
request(app)
|
||||
.get("/edit/" + page.rowid)
|
||||
.auth("admin", ADMIN_PASSWORD)
|
||||
.expect(200, done);
|
||||
});
|
||||
});
|
||||
test("/edit POST", done => {
|
||||
db.createPage("EditPostExample", "foo bar", (err, page) => {
|
||||
expect(err).toBeNull();
|
||||
|
||||
request(app)
|
||||
.post("/edit/" + page.rowid)
|
||||
.type("form")
|
||||
.send({ name: "EditPostExample", content: "hello world" })
|
||||
.auth("admin", ADMIN_PASSWORD)
|
||||
.expect(302, done);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
module.exports = app;
|
||||
describe("Viewing", () => {
|
||||
test("/all", done => {
|
||||
request(app)
|
||||
.get("/all")
|
||||
.expect(200, done);
|
||||
});
|
||||
|
||||
test("/AnExamplePage", done => {
|
||||
db.createPage("AnExamplePage", "foo bar", () => {
|
||||
request(app)
|
||||
.get("/AnExamplePage")
|
||||
.expect(200, done);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@ -1,47 +1,77 @@
|
||||
const createError = require("http-errors");
|
||||
const express = require("express");
|
||||
const exphbs = require("express-handlebars");
|
||||
const path = require("path");
|
||||
|
||||
const indexRouter = require("./routes/index");
|
||||
const pageRouter = require("./routes/pages");
|
||||
const editingRouter = require("./routes/editing");
|
||||
|
||||
const app = express();
|
||||
|
||||
app.engine(".html", exphbs({ extname: ".html" }));
|
||||
app.set("view engine", ".html");
|
||||
|
||||
app.use(
|
||||
"/static/semantic/",
|
||||
express.static(path.join(__dirname, "node_modules", "semantic-ui-css"))
|
||||
);
|
||||
app.use(
|
||||
"/static/font-awesome/",
|
||||
express.static(path.join(__dirname, "node_modules", "font-awesome"))
|
||||
);
|
||||
|
||||
app.use("/static/", express.static(path.join(__dirname, "static")));
|
||||
|
||||
app.use("/", indexRouter);
|
||||
app.use("/", editingRouter);
|
||||
// Needs to come last, so we register /:name after other routes.
|
||||
app.use("/", pageRouter);
|
||||
|
||||
// catch 404 and forward to error handler
|
||||
app.use(function(req, res, next) {
|
||||
next(createError(404));
|
||||
const request = require("supertest");
|
||||
const app = require("./app");
|
||||
const db = require("./db");
|
||||
|
||||
beforeAll(done => {
|
||||
db.init(done);
|
||||
});
|
||||
|
||||
describe("Authentication", () => {
|
||||
test("Editing pages", done => {
|
||||
request(app)
|
||||
.get("/edit/Foo")
|
||||
.then(res => {
|
||||
expect(res.statusCode).toBe(401);
|
||||
expect(res.headers["www-authenticate"]).toBe("Basic");
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
test("Creating pages", done => {
|
||||
request(app)
|
||||
.get("/new")
|
||||
.then(res => {
|
||||
expect(res.statusCode).toBe(401);
|
||||
expect(res.headers["www-authenticate"]).toBe("Basic");
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// error handler
|
||||
app.use(function(err, req, res) {
|
||||
// set locals, only providing error in development
|
||||
res.locals.message = err.message;
|
||||
res.locals.error = req.app.get("env") === "development" ? err : {};
|
||||
const ADMIN_PASSWORD = process.env.ADMIN_PASSWORD || "admin";
|
||||
|
||||
// render the error page
|
||||
res.status(err.status || 500);
|
||||
res.render("error");
|
||||
describe("Editing", () => {
|
||||
test("/new GET", done => {
|
||||
request(app)
|
||||
.get("/new")
|
||||
.auth("admin", ADMIN_PASSWORD)
|
||||
.expect(200, done);
|
||||
});
|
||||
test("/new POST", done => {
|
||||
request(app)
|
||||
.post("/new")
|
||||
.type("form")
|
||||
.send({ name: "FooBar", content: "hello world" })
|
||||
.auth("admin", ADMIN_PASSWORD)
|
||||
.expect(302, done);
|
||||
});
|
||||
|
||||
test("/edit GET", done => {
|
||||
db.createPage("EditGetExample", "foo bar", (err, page) => {
|
||||
expect(err).toBeNull();
|
||||
|
||||
request(app)
|
||||
.get("/edit/" + page.rowid)
|
||||
.auth("admin", ADMIN_PASSWORD)
|
||||
.expect(200, done);
|
||||
});
|
||||
});
|
||||
test("/edit GET", done => {
|
||||
db.createPage("EditPostExample", "foo bar", (err, page) => {
|
||||
expect(err).toBeNull();
|
||||
|
||||
request(app)
|
||||
.post("/edit/" + page.rowid)
|
||||
.type("form")
|
||||
.send({ name: "EditPostExample", content: "hello world" })
|
||||
.auth("admin", ADMIN_PASSWORD)
|
||||
.expect(302, done);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
module.exports = app;
|
||||
test("/all", done => {
|
||||
request(app)
|
||||
.get("/all")
|
||||
.expect(200, done);
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue