loading up the forgejo repo on tangled to test page performance
at forgejo 34 lines 1.3 kB view raw
1// Copyright 2024 The Forgejo Authors. All rights reserved. 2// SPDX-License-Identifier: MIT 3import {flushPromises, mount} from '@vue/test-utils'; 4import PullRequestMergeForm from './PullRequestMergeForm.vue'; 5 6async function renderMergeForm(branchName) { 7 window.config.pageData.pullRequestMergeForm = { 8 textDeleteBranch: `Delete branch "${branchName}"`, 9 textDoMerge: 'Merge', 10 defaultMergeStyle: 'merge', 11 isPullBranchDeletable: true, 12 canMergeNow: true, 13 mergeStyles: [{ 14 'name': 'merge', 15 'allowed': true, 16 'textDoMerge': 'Merge', 17 'mergeTitleFieldText': 'Merge PR', 18 'mergeMessageFieldText': 'Description', 19 'hideAutoMerge': 'Hide this message', 20 }], 21 }; 22 const mergeform = mount(PullRequestMergeForm); 23 mergeform.get('.merge-button').trigger('click'); 24 await flushPromises(); 25 return mergeform; 26} 27 28test('renders escaped branch name', async () => { 29 let mergeform = await renderMergeForm('<b>evil</b>'); 30 expect(mergeform.get('label[for="delete-branch-after-merge"]').text()).toBe('Delete branch "<b>evil</b>"'); 31 32 mergeform = await renderMergeForm('<script class="evil">alert("evil message");</script>'); 33 expect(mergeform.get('label[for="delete-branch-after-merge"]').text()).toBe('Delete branch "<script class="evil">alert("evil message");</script>"'); 34});