diff --git a/ghost/admin/tests/acceptance/settings/analytics-test.js b/ghost/admin/tests/acceptance/settings/analytics-test.js
index 15cc031502..272cb72918 100644
--- a/ghost/admin/tests/acceptance/settings/analytics-test.js
+++ b/ghost/admin/tests/acceptance/settings/analytics-test.js
@@ -1,6 +1,5 @@
import {authenticateSession} from 'ember-simple-auth/test-support';
import {click, find} from '@ember/test-helpers';
-import {enableLabsFlag} from '../../helpers/labs-flag';
import {expect} from 'chai';
import {setupApplicationTest} from 'ember-mocha';
import {setupMirage} from 'ember-cli-mirage/test-support';
@@ -65,7 +64,6 @@ describe('Acceptance: Settings - Analytics', function () {
});
it('can manage outbound link tagging', async function () {
- enableLabsFlag(this.server, 'outboundLinkTagging');
this.server.db.settings.update({key: 'outbound_link_tagging'}, {value: 'true'});
await visit('/settings/analytics');
diff --git a/ghost/core/core/shared/labs.js b/ghost/core/core/shared/labs.js
index 2c8d0749f9..789f112f7c 100644
--- a/ghost/core/core/shared/labs.js
+++ b/ghost/core/core/shared/labs.js
@@ -21,7 +21,8 @@ const GA_FEATURES = [
'audienceFeedback',
'themeErrorsNotification',
'emailStability',
- 'emailErrors'
+ 'emailErrors',
+ 'outboundLinkTagging'
];
// NOTE: this allowlist is meant to be used to filter out any unexpected
@@ -36,7 +37,6 @@ const ALPHA_FEATURES = [
'urlCache',
'beforeAfterCard',
'lexicalEditor',
- 'outboundLinkTagging',
'websockets',
'webmentionEmails'
];
diff --git a/ghost/core/test/e2e-api/admin/__snapshots__/settings.test.js.snap b/ghost/core/test/e2e-api/admin/__snapshots__/settings.test.js.snap
index 6e7be084f2..e8fd0e3613 100644
--- a/ghost/core/test/e2e-api/admin/__snapshots__/settings.test.js.snap
+++ b/ghost/core/test/e2e-api/admin/__snapshots__/settings.test.js.snap
@@ -654,7 +654,7 @@ exports[`Settings API Edit Can edit a setting 2: [headers] 1`] = `
Object {
"access-control-allow-origin": "http://127.0.0.1:2369",
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
- "content-length": "3653",
+ "content-length": "3682",
"content-type": "application/json; charset=utf-8",
"content-version": StringMatching /v\\\\d\\+\\\\\\.\\\\d\\+/,
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,
diff --git a/ghost/core/test/unit/api/canary/utils/serializers/output/mapper.test.js b/ghost/core/test/unit/api/canary/utils/serializers/output/mapper.test.js
index f51fcac5d3..acdfa02a32 100644
--- a/ghost/core/test/unit/api/canary/utils/serializers/output/mapper.test.js
+++ b/ghost/core/test/unit/api/canary/utils/serializers/output/mapper.test.js
@@ -6,6 +6,7 @@ const urlUtil = require('../../../../../../../core/server/api/endpoints/utils/se
const cleanUtil = require('../../../../../../../core/server/api/endpoints/utils/serializers/output/utils/clean');
const extraAttrsUtils = require('../../../../../../../core/server/api/endpoints/utils/serializers/output/utils/extra-attrs');
const mappers = require('../../../../../../../core/server/api/endpoints/utils/serializers/output/mappers');
+const memberAttribution = require('../../../../../../../core/server/services/member-attribution');
function createJsonModel(data) {
return Object.assign(data, {toJSON: sinon.stub().returns(data)});
@@ -29,9 +30,13 @@ describe('Unit: utils/serializers/output/mappers', function () {
sinon.stub(cleanUtil, 'post').returns({});
sinon.stub(cleanUtil, 'tag').returns({});
sinon.stub(cleanUtil, 'author').returns({});
+
+ memberAttribution.outboundLinkTagger = {
+ addToHtml: sinon.stub().callsFake(html => Promise.resolve(html))
+ };
});
- it('calls mapper on relations', function () {
+ it('calls mapper on relations', async function () {
const frame = {
original: {
context: {}
@@ -57,7 +62,7 @@ describe('Unit: utils/serializers/output/mappers', function () {
}]
}));
- mappers.posts(post, frame);
+ await mappers.posts(post, frame);
dateUtil.forPost.callCount.should.equal(1);