[Cypress] Streamline page edit and VE Cite setup

Change-Id: I4818b662e16f8d70a7d59dcfa29348e9468100df
This commit is contained in:
WMDE-Fisch 2024-06-03 20:53:11 +02:00
parent 1a67a23fbc
commit b4f4dc7fb7
4 changed files with 37 additions and 64 deletions

View file

@ -6,9 +6,9 @@ const refText1 = 'This is citation #1 for reference #1 and #2';
const refText2 = 'This is citation #2 for reference #3'; const refText2 = 'This is citation #2 for reference #3';
const wikiText = `This is reference #1: <ref name="a">${ refText1 }</ref><br> ` + const wikiText = `This is reference #1: <ref name="a">${ refText1 }</ref><br> ` +
'This is reference #2 <ref name="a" /><br>' + 'This is reference #2 <ref name="a" /><br>' +
`This is reference #3 <ref>${ refText2 }</ref><br>` + `This is reference #3 <ref>${ refText2 }</ref><br>` +
'<references />'; '<references />';
let usesCitoid; let usesCitoid;
@ -17,25 +17,17 @@ describe( 'Re-using refs in Visual Editor', () => {
const title = helpers.getTestString( 'CiteTest-reuseRefs' ); const title = helpers.getTestString( 'CiteTest-reuseRefs' );
cy.clearCookies(); cy.clearCookies();
cy.visit( '/index.php' );
helpers.editPage( title, wikiText ); helpers.editPage( title, wikiText );
cy.window().then( async ( win ) => { cy.window().then( async ( win ) => {
await win.mw.loader.using( 'mediawiki.base' ).then( async function () {
await win.mw.hook( 'wikipage.content' ).add( function () { } );
} );
usesCitoid = win.mw.loader.getModuleNames().includes( 'ext.citoid.visualEditor' ); usesCitoid = win.mw.loader.getModuleNames().includes( 'ext.citoid.visualEditor' );
win.localStorage.setItem( 've-beta-welcome-dialog', 1 ); win.localStorage.setItem( 've-beta-welcome-dialog', 1 );
win.localStorage.setItem( 've-hideusered', 1 ); win.localStorage.setItem( 've-hideusered', 1 );
} ); } );
helpers.visitTitle( title );
helpers.waitForMWLoader();
cy.window().then( async ( win ) => {
await win.mw.loader.using( 'mediawiki.base' ).then( async function () {
await win.mw.hook( 'wikipage.content' ).add( function () {} );
} );
} );
veHelpers.openVEForEditingReferences( title, usesCitoid ); veHelpers.openVEForEditingReferences( title, usesCitoid );
} ); } );

View file

@ -1,15 +1,9 @@
import * as helpers from './../../utils/functions.helper.js'; import * as helpers from './../../utils/functions.helper.js';
import * as veHelpers from './../../utils/ve.helper.js'; import * as veHelpers from './../../utils/ve.helper.js';
function getTestString( prefix = 'CiteTest-templates' ) {
return prefix;
}
const title = getTestString( 'CiteTest-title' );
const wikiText1 = 'This is reference #1:';
const refText1 = 'This is citation #1 for reference #1'; const refText1 = 'This is citation #1 for reference #1';
const wikiText = `${ wikiText1 } <ref name="a">${ refText1 }</ref><br> ` + const wikiText = `This is reference #1: <ref name="a">${ refText1 }</ref><br> ` +
'<references />'; '<references />';
let usesCitoid; let usesCitoid;
@ -20,48 +14,26 @@ describe( 'Re-using refs in Visual Editor using templates', () => {
cy.clearCookies(); cy.clearCookies();
helpers.loginAsAdmin(); helpers.loginAsAdmin();
helpers.waitForMWLoader(); helpers.editPage( 'MediaWiki:Cite-tool-definition.json', JSON.stringify( [
cy.window().then( async ( win ) => { {
await win.mw.loader.using( 'mediawiki.api' ); name: 'Webseite',
const response = await new win.mw.Api().postWithEditToken( { icon: 'ref-cite-web',
action: 'edit', template: 'Internetquelle'
title: title, },
text: wikiText, {
formatversion: '2' name: 'Literatur',
} ); icon: 'ref-cite-book',
template: 'Literatur'
expect( response.edit.result ).to.equal( 'Success' ); }
] ) );
await new win.mw.Api().postWithEditToken( {
action: 'edit',
title: 'MediaWiki:Cite-tool-definition.json',
text: JSON.stringify(
[
{
name: 'Webseite',
icon: 'ref-cite-web',
template: 'Internetquelle'
},
{
name: 'Literatur',
icon: 'ref-cite-book',
template: 'Literatur'
}
] ),
formatversion: '2'
} );
expect( response.edit.result ).to.equal( 'Success' );
cy.log( 'SUCCESS' );
} );
// Logout Admin account
cy.clearCookies();
} ); } );
beforeEach( () => { beforeEach( () => {
helpers.visitTitle( title ); const title = helpers.getTestString( 'CiteTest-templates' );
helpers.waitForMWLoader();
cy.clearCookies();
helpers.editPage( title, wikiText );
cy.window().then( async ( win ) => { cy.window().then( async ( win ) => {
await win.mw.loader.using( 'mediawiki.base' ).then( async function () { await win.mw.loader.using( 'mediawiki.base' ).then( async function () {
await win.mw.hook( 'wikipage.content' ).add( function () { } ); await win.mw.hook( 'wikipage.content' ).add( function () { } );

View file

@ -15,7 +15,6 @@ let usesCitoid;
describe( 'Visual Editor Cite Integration', () => { describe( 'Visual Editor Cite Integration', () => {
before( () => { before( () => {
cy.visit( '/index.php' );
helpers.editPage( title, wikiText ); helpers.editPage( title, wikiText );
} ); } );
@ -24,6 +23,9 @@ describe( 'Visual Editor Cite Integration', () => {
helpers.waitForMWLoader(); helpers.waitForMWLoader();
cy.window().then( async ( win ) => { cy.window().then( async ( win ) => {
await win.mw.loader.using( 'mediawiki.base' ).then( async function () {
await win.mw.hook( 'wikipage.content' ).add( function () { } );
} );
usesCitoid = win.mw.loader.getModuleNames().includes( 'ext.citoid.visualEditor' ); usesCitoid = win.mw.loader.getModuleNames().includes( 'ext.citoid.visualEditor' );
win.localStorage.setItem( 've-beta-welcome-dialog', 1 ); win.localStorage.setItem( 've-beta-welcome-dialog', 1 );
win.localStorage.setItem( 've-hideusered', 1 ); win.localStorage.setItem( 've-hideusered', 1 );

View file

@ -35,11 +35,18 @@ export function waitForMWLoader() {
} }
export function editPage( title, wikiText ) { export function editPage( title, wikiText ) {
visitTitle( '' );
waitForMWLoader(); waitForMWLoader();
cy.window().then( async ( win ) => { cy.window().then( async ( win ) => {
await win.mw.loader.using( 'mediawiki.api' ); await win.mw.loader.using( 'mediawiki.api' );
const response = await new win.mw.Api().create( title, {}, wikiText ); const response = await new win.mw.Api().postWithEditToken( {
expect( response.result ).to.equal( 'Success' ); action: 'edit',
title: title,
text: wikiText,
formatversion: '2'
} );
expect( response.edit.result ).to.equal( 'Success' );
} ); } );
} }