mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 03:26:04 +01:00
* axios migration * controller tests * add missing deps * feeds * remove unused async * flags * locale-detect * messaging/middleware * remove log * meta * plugins * posts * search * topics/thumbs * user/emails * uploads.js * socket.io * cleaunup * test native fetch * cleanup * increase engine to 18 fix remaining tests * remove testing file * fix comments,typo * revert debug
This commit is contained in:
committed by
GitHub
parent
451430006e
commit
c15bdd4cf0
@@ -9,11 +9,7 @@ const util = require('util');
|
||||
|
||||
const sleep = util.promisify(setTimeout);
|
||||
const assert = require('assert');
|
||||
const async = require('async');
|
||||
const nconf = require('nconf');
|
||||
const request = require('request');
|
||||
|
||||
const cookies = request.jar();
|
||||
|
||||
const db = require('./mocks/databasemock');
|
||||
const user = require('../src/user');
|
||||
@@ -52,35 +48,11 @@ describe('socket.io', () => {
|
||||
});
|
||||
|
||||
|
||||
it('should connect and auth properly', (done) => {
|
||||
request.get({
|
||||
url: `${nconf.get('url')}/api/config`,
|
||||
jar: cookies,
|
||||
json: true,
|
||||
}, (err, res, body) => {
|
||||
assert.ifError(err);
|
||||
|
||||
request.post(`${nconf.get('url')}/login`, {
|
||||
jar: cookies,
|
||||
form: {
|
||||
username: 'admin',
|
||||
password: 'adminpwd',
|
||||
},
|
||||
headers: {
|
||||
'x-csrf-token': body.csrf_token,
|
||||
},
|
||||
json: true,
|
||||
}, (err, res) => {
|
||||
assert.ifError(err);
|
||||
|
||||
helpers.connectSocketIO(res, body.csrf_token, (err, _io) => {
|
||||
io = _io;
|
||||
assert.ifError(err);
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
it('should connect and auth properly', async () => {
|
||||
const { response, csrf_token } = await helpers.loginUser('admin', 'adminpwd');
|
||||
io = await helpers.connectSocketIO(response, csrf_token);
|
||||
assert(io);
|
||||
assert(io.emit);
|
||||
});
|
||||
|
||||
it('should return error for unknown event', (done) => {
|
||||
@@ -459,20 +431,38 @@ describe('socket.io', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it('should toggle plugin install', function (done) {
|
||||
this.timeout(0);
|
||||
const oldValue = process.env.NODE_ENV;
|
||||
process.env.NODE_ENV = 'development';
|
||||
socketAdmin.plugins.toggleInstall({
|
||||
uid: adminUid,
|
||||
}, {
|
||||
id: 'nodebb-plugin-location-to-map',
|
||||
version: 'latest',
|
||||
}, (err, data) => {
|
||||
assert.ifError(err);
|
||||
assert.equal(data.name, 'nodebb-plugin-location-to-map');
|
||||
process.env.NODE_ENV = oldValue;
|
||||
done();
|
||||
describe('install/upgrade plugin', () => {
|
||||
it('should toggle plugin install', function (done) {
|
||||
this.timeout(0);
|
||||
const oldValue = process.env.NODE_ENV;
|
||||
process.env.NODE_ENV = 'development';
|
||||
socketAdmin.plugins.toggleInstall({
|
||||
uid: adminUid,
|
||||
}, {
|
||||
id: 'nodebb-plugin-location-to-map',
|
||||
version: 'latest',
|
||||
}, (err, data) => {
|
||||
assert.ifError(err);
|
||||
assert.equal(data.name, 'nodebb-plugin-location-to-map');
|
||||
process.env.NODE_ENV = oldValue;
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should upgrade plugin', function (done) {
|
||||
this.timeout(0);
|
||||
const oldValue = process.env.NODE_ENV;
|
||||
process.env.NODE_ENV = 'development';
|
||||
socketAdmin.plugins.upgrade({
|
||||
uid: adminUid,
|
||||
}, {
|
||||
id: 'nodebb-plugin-location-to-map',
|
||||
version: 'latest',
|
||||
}, (err) => {
|
||||
assert.ifError(err);
|
||||
process.env.NODE_ENV = oldValue;
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -501,22 +491,6 @@ describe('socket.io', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it('should upgrade plugin', function (done) {
|
||||
this.timeout(0);
|
||||
const oldValue = process.env.NODE_ENV;
|
||||
process.env.NODE_ENV = 'development';
|
||||
socketAdmin.plugins.upgrade({
|
||||
uid: adminUid,
|
||||
}, {
|
||||
id: 'nodebb-plugin-location-to-map',
|
||||
version: 'latest',
|
||||
}, (err) => {
|
||||
assert.ifError(err);
|
||||
process.env.NODE_ENV = oldValue;
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should error with invalid data', (done) => {
|
||||
socketAdmin.widgets.set({ uid: adminUid }, null, (err) => {
|
||||
assert.equal(err.message, '[[error:invalid-data]]');
|
||||
@@ -709,60 +683,43 @@ describe('socket.io', () => {
|
||||
assert(pwExpiry > then && pwExpiry < Date.now());
|
||||
});
|
||||
|
||||
it('should not error on valid email', (done) => {
|
||||
socketUser.reset.send({ uid: 0 }, 'regular@test.com', (err) => {
|
||||
assert.ifError(err);
|
||||
it('should not error on valid email', async () => {
|
||||
await socketUser.reset.send({ uid: 0 }, 'regular@test.com');
|
||||
const [count, eventsData] = await Promise.all([
|
||||
db.sortedSetCount('reset:issueDate', 0, Date.now()),
|
||||
events.getEvents('', 0, 0),
|
||||
]);
|
||||
assert.strictEqual(count, 2);
|
||||
|
||||
async.parallel({
|
||||
count: async.apply(db.sortedSetCount.bind(db), 'reset:issueDate', 0, Date.now()),
|
||||
event: async.apply(events.getEvents, '', 0, 0),
|
||||
}, (err, data) => {
|
||||
assert.ifError(err);
|
||||
assert.strictEqual(data.count, 2);
|
||||
|
||||
// Event validity
|
||||
assert.strictEqual(data.event.length, 1);
|
||||
const event = data.event[0];
|
||||
assert.strictEqual(event.type, 'password-reset');
|
||||
assert.strictEqual(event.text, '[[success:success]]');
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
// Event validity
|
||||
assert.strictEqual(eventsData.length, 1);
|
||||
const event = eventsData[0];
|
||||
assert.strictEqual(event.type, 'password-reset');
|
||||
assert.strictEqual(event.text, '[[success:success]]');
|
||||
});
|
||||
|
||||
it('should not generate code if rate limited', (done) => {
|
||||
socketUser.reset.send({ uid: 0 }, 'regular@test.com', (err) => {
|
||||
assert(err);
|
||||
it('should not generate code if rate limited', async () => {
|
||||
await assert.rejects(
|
||||
socketUser.reset.send({ uid: 0 }, 'regular@test.com'),
|
||||
{ message: '[[error:reset-rate-limited]]' },
|
||||
);
|
||||
const [count, eventsData] = await Promise.all([
|
||||
db.sortedSetCount('reset:issueDate', 0, Date.now()),
|
||||
events.getEvents('', 0, 0),
|
||||
]);
|
||||
assert.strictEqual(count, 2);
|
||||
|
||||
async.parallel({
|
||||
count: async.apply(db.sortedSetCount.bind(db), 'reset:issueDate', 0, Date.now()),
|
||||
event: async.apply(events.getEvents, '', 0, 0),
|
||||
}, (err, data) => {
|
||||
assert.ifError(err);
|
||||
assert.strictEqual(data.count, 2);
|
||||
|
||||
// Event validity
|
||||
assert.strictEqual(data.event.length, 1);
|
||||
const event = data.event[0];
|
||||
assert.strictEqual(event.type, 'password-reset');
|
||||
assert.strictEqual(event.text, '[[error:reset-rate-limited]]');
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
// Event validity
|
||||
assert.strictEqual(eventsData.length, 1);
|
||||
const event = eventsData[0];
|
||||
assert.strictEqual(event.type, 'password-reset');
|
||||
assert.strictEqual(event.text, '[[error:reset-rate-limited]]');
|
||||
});
|
||||
|
||||
it('should not error on invalid email (but not generate reset code)', (done) => {
|
||||
socketUser.reset.send({ uid: 0 }, 'irregular@test.com', (err) => {
|
||||
assert.ifError(err);
|
||||
|
||||
db.sortedSetCount('reset:issueDate', 0, Date.now(), (err, count) => {
|
||||
assert.ifError(err);
|
||||
assert.strictEqual(count, 2);
|
||||
done();
|
||||
});
|
||||
});
|
||||
it('should not error on invalid email (but not generate reset code)', async () => {
|
||||
await socketUser.reset.send({ uid: 0 }, 'irregular@test.com');
|
||||
const count = await db.sortedSetCount('reset:issueDate', 0, Date.now());
|
||||
assert.strictEqual(count, 2);
|
||||
});
|
||||
|
||||
it('should error on no email', (done) => {
|
||||
|
||||
Reference in New Issue
Block a user