Merge pull request #9339 from overleaf/jpa-script-rename-tag

[web] server-ce-scripts: add script for renaming a tag

GitOrigin-RevId: 4137fcf7410a5043fa1c1ef1a1694f6c5ad6059a
This commit is contained in:
Miguel Serrano 2022-08-23 11:07:12 +02:00 committed by Copybot
parent d538d28f3e
commit 4cfbee15df
2 changed files with 64 additions and 0 deletions

View file

@ -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)
})

View file

@ -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])
})
})
})