0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-03 23:00:14 -05:00

Fixed theme-engine middleware tests timing out rather than showing failed assertions

no issue

- if any of the assertions in a test failed there was no handling, instead the test just timed out with a timeout error
- wrapping the assertions in a try/catch and calling `done()` with the error object aborts the test immediately and shows a useful assertion failure message
This commit is contained in:
Kevin Ansfield 2021-09-30 11:10:10 +01:00
parent d4cd1bb865
commit 4a6bedce7b

View file

@ -72,12 +72,16 @@ describe('Themes middleware', function () {
fakeActiveTheme.mounted = false;
executeMiddleware(middleware, req, res, function next(err) {
try {
should.not.exist(err);
fakeActiveTheme.mount.called.should.be.true();
fakeActiveTheme.mount.calledWith(req.app).should.be.true();
done();
} catch (error) {
done(error);
}
});
});
@ -85,11 +89,15 @@ describe('Themes middleware', function () {
fakeActiveTheme.mounted = true;
executeMiddleware(middleware, req, res, function next(err) {
try {
should.not.exist(err);
fakeActiveTheme.mount.called.should.be.false();
done();
} catch (error) {
done(error);
}
});
});
@ -99,6 +107,7 @@ describe('Themes middleware', function () {
.returns(undefined);
executeMiddleware(middleware, req, res, function next(err) {
try {
// Did throw an error
should.exist(err);
err.message.should.eql('The currently active theme "bacon-sensation" is missing.');
@ -107,6 +116,9 @@ describe('Themes middleware', function () {
fakeActiveTheme.mount.called.should.be.false();
done();
} catch (error) {
done(error);
}
});
});
@ -114,11 +126,15 @@ describe('Themes middleware', function () {
req.secure = Math.random() < 0.5;
executeMiddleware(middleware, req, res, function next(err) {
try {
should.not.exist(err);
should.equal(res.locals.secure, req.secure);
done();
} catch (error) {
done(error);
}
});
});
@ -127,6 +143,7 @@ describe('Themes middleware', function () {
const themeDataExpectedProps = ['posts_per_page', 'image_sizes'];
executeMiddleware(middleware, req, res, function next(err) {
try {
should.not.exist(err);
hbs.updateTemplateOptions.calledOnce.should.be.true();
@ -150,6 +167,9 @@ describe('Themes middleware', function () {
data.site.signup_url.should.equal('#/portal');
done();
} catch (error) {
done(error);
}
});
});
@ -158,6 +178,7 @@ describe('Themes middleware', function () {
.withArgs('members_signup_access').returns('none');
executeMiddleware(middleware, req, res, function next(err) {
try {
const templateOptions = hbs.updateTemplateOptions.firstCall.args[0];
const data = templateOptions.data;
@ -165,6 +186,9 @@ describe('Themes middleware', function () {
data.site.signup_url.should.equal('https://feedly.com/i/subscription/feed/http%3A%2F%2F127.0.0.1%3A2369%2Frss%2F');
done();
} catch (error) {
done(error);
}
});
});
});
@ -177,6 +201,7 @@ describe('Themes middleware', function () {
};
executeMiddleware(middleware, req, res, function next(err) {
try {
should.not.exist(err);
hbs.updateTemplateOptions.calledOnce.should.be.true();
@ -192,6 +217,9 @@ describe('Themes middleware', function () {
data.site.accent_color.should.eql('#000fff');
done();
} catch (error) {
done(error);
}
});
});
@ -202,6 +230,7 @@ describe('Themes middleware', function () {
};
executeMiddleware(middleware, req, res, function next(err) {
try {
should.not.exist(err);
hbs.updateTemplateOptions.calledOnce.should.be.true();
@ -218,6 +247,9 @@ describe('Themes middleware', function () {
data.site.icon.should.eql('/content/images/myimg.png');
done();
} catch (error) {
done(error);
}
});
});
});