test: fix username test

move cover:url code to user/data.js like uploadedpicture
This commit is contained in:
Barış Soner Uşaklı
2026-02-08 20:30:01 -05:00
parent 694b545c1f
commit db07456bc0
4 changed files with 26 additions and 23 deletions

View File

@@ -119,13 +119,6 @@ helpers.getUserDataByUserSlug = async function (userslug, callerUID, query = {})
userData.signature = escape(userData.signature); userData.signature = escape(userData.signature);
userData.birthday = validator.escape(String(userData.birthday || '')); userData.birthday = validator.escape(String(userData.birthday || ''));
userData.moderationNote = validator.escape(String(userData.moderationNote || '')); userData.moderationNote = validator.escape(String(userData.moderationNote || ''));
if (userData['cover:url']) {
userData['cover:url'] = userData['cover:url'].startsWith('http') ? userData['cover:url'] : (nconf.get('relative_path') + userData['cover:url']);
} else {
userData['cover:url'] = require('../../coverPhoto').getDefaultProfileCover(userData.uid);
}
userData['cover:position'] = validator.escape(String(userData['cover:position'] || '50% 50%')); userData['cover:position'] = validator.escape(String(userData['cover:position'] || '50% 50%'));
userData['username:disableEdit'] = !userData.isAdmin && meta.config['username:disableEdit']; userData['username:disableEdit'] = !userData.isAdmin && meta.config['username:disableEdit'];
userData['email:disableEdit'] = !userData.isAdmin && meta.config['email:disableEdit']; userData['email:disableEdit'] = !userData.isAdmin && meta.config['email:disableEdit'];

View File

@@ -7,6 +7,11 @@ const db = require('../database');
const plugins = require('../plugins'); const plugins = require('../plugins');
const utils = require('../utils'); const utils = require('../utils');
const translator = require('../translator'); const translator = require('../translator');
const coverPhoto = require('../coverPhoto');
const relative_path = nconf.get('relative_path');
const prependRelativePath = url => url.startsWith('http') ? url : relative_path + url;
const intFields = [ const intFields = [
'createtime', 'memberCount', 'hidden', 'system', 'private', 'createtime', 'memberCount', 'hidden', 'system', 'private',
@@ -81,17 +86,13 @@ function modifyGroup(group, fields) {
group['cover:thumb:url'] = group['cover:thumb:url'] || group['cover:url']; group['cover:thumb:url'] = group['cover:thumb:url'] || group['cover:url'];
if (group['cover:url']) { group['cover:url'] = group['cover:url'] ?
group['cover:url'] = group['cover:url'].startsWith('http') ? group['cover:url'] : (nconf.get('relative_path') + group['cover:url']); prependRelativePath(group['cover:url']) :
} else { coverPhoto.getDefaultGroupCover(group.name);
group['cover:url'] = require('../coverPhoto').getDefaultGroupCover(group.name);
}
if (group['cover:thumb:url']) { group['cover:thumb:url'] = group['cover:thumb:url'] ?
group['cover:thumb:url'] = group['cover:thumb:url'].startsWith('http') ? group['cover:thumb:url'] : (nconf.get('relative_path') + group['cover:thumb:url']); prependRelativePath(group['cover:thumb:url']) :
} else { coverPhoto.getDefaultGroupCover(group.name);
group['cover:thumb:url'] = require('../coverPhoto').getDefaultGroupCover(group.name);
}
group['cover:position'] = validator.escape(String(group['cover:position'] || '50% 50%')); group['cover:position'] = validator.escape(String(group['cover:position'] || '50% 50%'));
} }

View File

@@ -9,9 +9,12 @@ const meta = require('../meta');
const plugins = require('../plugins'); const plugins = require('../plugins');
const activitypub = require('../activitypub'); const activitypub = require('../activitypub');
const utils = require('../utils'); const utils = require('../utils');
const coverPhoto = require('../coverPhoto');
const relative_path = nconf.get('relative_path'); const relative_path = nconf.get('relative_path');
const prependRelativePath = url => url.startsWith('http') ? url : relative_path + url;
const intFields = [ const intFields = [
'uid', 'postcount', 'topiccount', 'reputation', 'profileviews', 'uid', 'postcount', 'topiccount', 'reputation', 'profileviews',
'banned', 'banned:expire', 'email:confirmed', 'joindate', 'lastonline', 'banned', 'banned:expire', 'email:confirmed', 'joindate', 'lastonline',
@@ -257,12 +260,18 @@ module.exports = function (User) {
parseGroupTitle(user); parseGroupTitle(user);
} }
if (user.picture && user.picture === user.uploadedpicture) { if (user.uploadedpicture || user.picture) {
user.uploadedpicture = user.picture.startsWith('http') ? user.picture : relative_path + user.picture; const source = (user.picture && user.picture === user.uploadedpicture) ? user.picture : user.uploadedpicture;
user.picture = user.uploadedpicture; if (source) {
} else if (user.uploadedpicture) { user.uploadedpicture = prependRelativePath(source);
user.uploadedpicture = user.uploadedpicture.startsWith('http') ? user.uploadedpicture : relative_path + user.uploadedpicture; user.picture = user.uploadedpicture;
}
} }
user['cover:url'] = user['cover:url'] ?
prependRelativePath(user['cover:url']) :
coverPhoto.getDefaultProfileCover(user.uid);
if (meta.config.defaultAvatar && !user.picture) { if (meta.config.defaultAvatar && !user.picture) {
user.picture = User.getDefaultAvatar(); user.picture = User.getDefaultAvatar();
} }

View File

@@ -176,7 +176,7 @@ describe('User', () => {
await assert.rejects(User.create({ await assert.rejects(User.create({
username: '-.-', // slug becomes . username: '-.-', // slug becomes .
password: '123456', password: '123456',
}), { message: '[[error:invalid-username, -.-]]' }); }), { message: '[[error:invalid-username]]' });
}); });
it('should create user with valid slug (-.-.- => .-.)', async () => { it('should create user with valid slug (-.-.- => .-.)', async () => {