test(backend-proxy-e2e): stabilize backend proxy tests (#3133)

This commit is contained in:
Erez Rokah
2020-01-23 18:15:15 +02:00
committed by GitHub
parent 2d2bd39651
commit 48afa8dfe4
5 changed files with 48 additions and 15 deletions

View File

@ -9,6 +9,7 @@ describe('Proxy Backend Editorial Workflow', () => {
before(() => { before(() => {
specUtils.before(taskResult, { publish_mode: 'editorial_workflow' }, backend); specUtils.before(taskResult, { publish_mode: 'editorial_workflow' }, backend);
Cypress.config('defaultCommandTimeout', 5 * 1000);
}); });
after(() => { after(() => {

View File

@ -9,6 +9,7 @@ describe('Proxy Backend Media Library - REST API', () => {
before(() => { before(() => {
specUtils.before(taskResult, { publish_mode: 'editorial_workflow' }, backend); specUtils.before(taskResult, { publish_mode: 'editorial_workflow' }, backend);
Cypress.config('defaultCommandTimeout', 5 * 1000);
}); });
after(() => { after(() => {

View File

@ -9,6 +9,7 @@ describe('Proxy Backend Simple Workflow', () => {
before(() => { before(() => {
specUtils.before(taskResult, { publish_mode: 'simple' }, backend); specUtils.before(taskResult, { publish_mode: 'simple' }, backend);
Cypress.config('defaultCommandTimeout', 5 * 1000);
}); });
after(() => { after(() => {

View File

@ -33,7 +33,7 @@ function assertNotification(message) {
cy.get('.notif__container').within(() => { cy.get('.notif__container').within(() => {
cy.contains(message); cy.contains(message);
// eslint-disable-next-line cypress/no-unnecessary-waiting // eslint-disable-next-line cypress/no-unnecessary-waiting
cy.wait(100); cy.wait(500);
cy.contains(message).invoke('hide'); cy.contains(message).invoke('hide');
}); });
} }
@ -136,19 +136,21 @@ function assertOnCollectionsPage() {
} }
function assertEntryDeleted(entry) { function assertEntryDeleted(entry) {
const hasEntries = Cypress.$('a h2').length > 0; cy.get('body').then($body => {
if (hasEntries) { const entriesHeaders = $body.find('a h2');
if (Array.isArray(entry)) { if (entriesHeaders.length > 0) {
const titles = entry.map(e => e.title); if (Array.isArray(entry)) {
cy.get('a h2').each(el => { const titles = entry.map(e => e.title);
expect(titles).not.to.include(el.text()); cy.get('a h2').each(el => {
}); expect(titles).not.to.include(el.text());
} else { });
cy.get('a h2').each(el => { } else {
expect(entry.title).not.to.equal(el.text()); cy.get('a h2').each(el => {
}); expect(entry.title).not.to.equal(el.text());
});
}
} }
} });
} }
function assertWorkflowStatus({ title }, status) { function assertWorkflowStatus({ title }, status) {

View File

@ -214,6 +214,34 @@ const commitEntry = async (
await commit(git, commitMessage, [entry.path, ...assets.map(a => a.path)]); await commit(git, commitMessage, [entry.path, ...assets.map(a => a.path)]);
}; };
const rebase = async (git: simpleGit.SimpleGit, branch: string) => {
const gpgSign = await git.raw(['config', 'commit.gpgsign']);
try {
if (gpgSign === 'true') {
await git.addConfig('commit.gpgsign', 'false');
}
await git.rebase([branch, '--no-verify']);
} finally {
if (gpgSign === 'true') {
await git.addConfig('commit.gpgsign', gpgSign);
}
}
};
const merge = async (git: simpleGit.SimpleGit, from: string, to: string) => {
const gpgSign = await git.raw(['config', 'commit.gpgsign']);
try {
if (gpgSign === 'true') {
await git.addConfig('commit.gpgsign', 'false');
}
await git.mergeFromTo(from, to);
} finally {
if (gpgSign === 'true') {
await git.addConfig('commit.gpgsign', gpgSign);
}
}
};
const isBranchExists = async (git: simpleGit.SimpleGit, branch: string) => { const isBranchExists = async (git: simpleGit.SimpleGit, branch: string) => {
const branchExists = await git.branchLocal().then(({ all }) => all.includes(branch)); const branchExists = await git.branchLocal().then(({ all }) => all.includes(branch));
return branchExists; return branchExists;
@ -357,7 +385,7 @@ export const localGitMiddleware = ({ repoPath }: Options) => {
} else { } else {
await git.checkoutLocalBranch(cmsBranch); await git.checkoutLocalBranch(cmsBranch);
} }
await git.rebase([branch, '--no-gpg-sign', '--no-gpg-sign']); await rebase(git, branch);
const diff = await git.diffSummary([branch, cmsBranch]); const diff = await git.diffSummary([branch, cmsBranch]);
const data = await getEntryDataFromDiff( const data = await getEntryDataFromDiff(
git, git,
@ -398,7 +426,7 @@ export const localGitMiddleware = ({ repoPath }: Options) => {
const { collection, slug } = body.params as PublishUnpublishedEntryParams; const { collection, slug } = body.params as PublishUnpublishedEntryParams;
const contentKey = generateContentKey(collection, slug); const contentKey = generateContentKey(collection, slug);
const cmsBranch = branchFromContentKey(contentKey); const cmsBranch = branchFromContentKey(contentKey);
await git.mergeFromTo(cmsBranch, branch); await merge(git, cmsBranch, branch);
await git.deleteLocalBranch(cmsBranch); await git.deleteLocalBranch(cmsBranch);
res.json({ message: `branch ${cmsBranch} merged to ${branch}` }); res.json({ message: `branch ${cmsBranch} merged to ${branch}` });
break; break;