Files
DefinitelyTyped/express/express-tests.ts
2012-11-19 01:28:08 +02:00

242 lines
6.9 KiB
TypeScript

/// <reference path="express-3.0.d.ts" />
declare var _, $;
import Express = module('express');
var express: Express;
var app: Express.ServerApplication;
function test_general() {
app.use(function (err, req, res, next) {
console.error(err.stack);
res.send(500, 'Something broke!');
});
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(function (err, req, res, next) { });
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.get('/', function (req, res) {
res.send('hello world');
});
app.listen(3000);
app.set('title', 'My Site');
app.get('title');
app.enable('trust proxy');
app.get('trust proxy');
app.disable('trust proxy');
app.get('trust proxy');
app.enabled('trust proxy');
app.configure(function () => {
app.set('title', 'My Application');
});
app.configure('development', () => {
app.set('db uri', 'localhost/dev');
});
app.configure('stage', 'production', function () { });
app.configure('1', '2', '3', function () { });
app.use(function (req, res, next) {
res.send('Hello World');
});
app.engine('jade', require('jade').__express);
var User;
app.param('user', (req, res, next, id) => {
User.find(id, (err, user) =>{
if (err) {
next(err);
} else if (user) {
req.user = user;
next();
} else {
next(new Error('failed to load user'));
}
});
});
app.get(/^\/commits\/(\d+)(?:\.\.(\d+))?$/, (req, res) => {
var from = req.params[0];
var to = req.params[1] || 'HEAD';
res.send('commit range ' + from + '..' + to);
});
app.locals.title = 'My App';
app.locals.strftime = require('strftime');
var requireAuthentication;
var loadUser = function () { };
app.all('*', requireAuthentication, loadUser);
app.all('*', loadUser);
app.all('*', loadUser, loadUser, loadUser);
app.locals.title = 'My App';
app.locals.strftime = require('strftime');
app.locals({
title: 'My App',
phone: '1-250-858-9990',
email: 'me@myapp.com'
});
app.render('email', function (err, html) { });
app.render('email', { name: 'Tobi' }, function (err, html) { });
}
function test_request() {
var req: Express.ServerRequest;
req.params.name;
req.params[0];
req.query.q;
req.body.user.name;
app.use(express.bodyParser({ keepExtensions: true, uploadDir: '/my/files' }));
req.param('name');
req.route;
req.cookies.name;
req.signedCookies;
req.get('Content-Type');
req.accepts('html');
req.accepts(['html', 'json']);
req.is('html');
req.ip;
req.path;
req.host;
req.fresh;
req.stale;
req.xhr;
req.protocol;
req.subdomains;
req.originalUrl;
req.acceptedLanguages;
req.acceptedCharsets;
var charset;
req.acceptsCharset(charset);
var lang;
req.acceptsLanguage(lang);
req.session = null;
}
function test_response() {
var res: Express.ServerResponse;
res.status(404).sendfile('path/to/404.png');
res.set('Content-Type', 'text/plain');
res.set({
'Content-Type': 'text/plain',
'Content-Length': '123',
'ETag': '12345'
});
res.get('Content-Type');
res.cookie('name', 'tobi', { domain: '.example.com', path: '/admin', secure: true });
res.cookie('rememberme', '1', { expires: new Date(Date.now() + 900000), httpOnly: true });
res.cookie('rememberme', '1', { maxAge: 900000, httpOnly: true });
res.cookie('cart', { items: [1, 2, 3] });
res.cookie('cart', { items: [1, 2, 3] }, { maxAge: 900000 });;
res.cookie('name', 'tobi', { signed: true });
res.cookie('name', 'tobi', { path: '/admin' });
res.clearCookie('name', { path: '/admin' });
res.redirect('/foo/bar');
res.redirect('http://example.com');
res.redirect(301, 'http://example.com');
res.charset = 'value';
res.send('some html');
res.send(new Buffer('whoop'));
res.send({ some: 'json' });
res.send('some html');
res.send(404, 'Sorry, we cannot find that!');
res.send(500, { error: 'something blew up' });
res.send(200);
res.set('Content-Type', 'text/html');
res.send(new Buffer('some html'));
res.send('some html');
res.send({ user: 'tobi' });
res.send([1, 2, 3]);
res.json(null);
res.json({ user: 'tobi' });
res.json(500, { error: 'message' });
res.jsonp(null);
res.jsonp({ user: 'tobi' });
res.jsonp(500, { error: 'message' });
res.jsonp({ user: 'tobi' });
res.type('application/json');
res.format({
'text/plain': function () {
res.send('hey');
},
'text/html': function () {
res.send('hey');
},
'application/json': function () {
res.send({ message: 'hey' });
}
});
res.attachment();
res.attachment('path/to/logo.png');
app.get('/user/:uid/photos/:file', function (req, res) {
var uid = req.params.uid
, file = req.params.file;
req.user.mayViewFilesFrom(uid, function (yes) {
if (yes) {
res.sendfile('/uploads/' + uid + '/' + file);
} else {
res.send(403, 'Sorry! you cant see that.');
}
});
});
res.download('/report-12345.pdf');
res.download('/report-12345.pdf', 'report.pdf');
res.download('/report-12345.pdf', 'report.pdf', function (err) {
if (err) { } else { }
});
res.links({
next: 'http://api.example.com/users?page=2',
last: 'http://api.example.com/users?page=5'
});
app.use(function (req, res, next) {
res.locals.user = req.user;
res.locals.authenticated = !req.user.anonymous;
next();
});
res.render('index', function (err, html) { });
res.render('user', { name: 'Tobi' }, function (err, html) { });
}
function test_middleware() {
app.use(express.basicAuth('username', 'password'));
app.use(express.basicAuth(function (user, pass) {
return 'tj' == user && 'wahoo' == pass;
}));
app.use(express.bodyParser());
app.use(express.json());
app.use(express.urlencoded());
app.use(express.multipart());
app.use(express.logger());
app.use(express.compress());
app.use(express.methodOverride());
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.cookieParser('some secret'));
app.use(express.cookieSession());
app.use(express.directory('public'));
app.use(express.static('public'));
}