From 4cfbee15dfd209cd4f5e3568cf54ad89120fad9e Mon Sep 17 00:00:00 2001 From: Miguel Serrano Date: Tue, 23 Aug 2022 11:07:12 +0200 Subject: [PATCH] Merge pull request #9339 from overleaf/jpa-script-rename-tag [web] server-ce-scripts: add script for renaming a tag GitOrigin-RevId: 4137fcf7410a5043fa1c1ef1a1694f6c5ad6059a --- .../server-ce-scripts/scripts/rename-tag.js | 33 +++++++++++++++++++ .../acceptance/src/ServerCEScriptsTests.js | 31 +++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 services/web/modules/server-ce-scripts/scripts/rename-tag.js diff --git a/services/web/modules/server-ce-scripts/scripts/rename-tag.js b/services/web/modules/server-ce-scripts/scripts/rename-tag.js new file mode 100644 index 0000000000..51fa4377b6 --- /dev/null +++ b/services/web/modules/server-ce-scripts/scripts/rename-tag.js @@ -0,0 +1,33 @@ +const minimist = require('minimist') +const { db, waitForDb } = require('../../../app/src/infrastructure/mongodb') + +async function main() { + await waitForDb() + + const argv = minimist(process.argv.slice(2), { + string: ['user-id', 'old-name', 'new_name'], + }) + + const { 'user-id': userId, 'old-name': oldName, 'new-name': newName } = argv + if (!userId || !oldName || !newName) { + console.error( + `Usage: node ${__filename} --user-id=5a9414f259776c7900b300e6 --old-name=my-folder --new-name=my-folder-renamed` + ) + process.exit(101) + } + + await db.tags.updateOne( + { name: oldName, user_id: userId }, + { $set: { name: newName } } + ) +} + +main() + .then(() => { + console.error('Done.') + process.exit(0) + }) + .catch(err => { + console.error(err) + process.exit(1) + }) diff --git a/services/web/modules/server-ce-scripts/test/acceptance/src/ServerCEScriptsTests.js b/services/web/modules/server-ce-scripts/test/acceptance/src/ServerCEScriptsTests.js index 6fb28548f7..42cf1a77a1 100644 --- a/services/web/modules/server-ce-scripts/test/acceptance/src/ServerCEScriptsTests.js +++ b/services/web/modules/server-ce-scripts/test/acceptance/src/ServerCEScriptsTests.js @@ -129,4 +129,35 @@ describe('ServerCEScripts', function () { expect.fail('command should have failed') }) }) + + describe('rename-tag', function () { + let user + beforeEach(async function () { + user = new User() + await user.login() + }) + + async function createTag(name) { + await user.doRequest('POST', { url: '/tag', json: { name } }) + } + + async function getTagNames() { + const { body } = await user.doRequest('GET', { url: '/tag', json: true }) + return body.map(tag => tag.name) + } + + it('should rename a tag', async function () { + const oldName = 'before' + const newName = 'after' + await createTag(oldName) + + expect(await getTagNames()).to.deep.equal([oldName]) + + run( + `node modules/server-ce-scripts/scripts/rename-tag --user-id=${user.id} --old-name=${oldName} --new-name=${newName}` + ) + + expect(await getTagNames()).to.deep.equal([newName]) + }) + }) })