From 014f23887f4cbb4a40b48bf3cf3afc7c3799fe85 Mon Sep 17 00:00:00 2001 From: Nolan Lawson Date: Sun, 18 Feb 2018 17:28:08 -0800 Subject: [PATCH] fix notifications test --- bin/wait-for-mastodon-to-start.js | 3 ++- cypress/integration/01-basic-spec.js | 4 ++-- cypress/integration/02-login-spec.js | 4 ++-- cypress/integration/03-basic-timeline-spec.js | 6 +++--- cypress/support/commands.js | 1 + package.json | 3 ++- routes/_components/NavItem.html | 2 +- 7 files changed, 13 insertions(+), 10 deletions(-) diff --git a/bin/wait-for-mastodon-to-start.js b/bin/wait-for-mastodon-to-start.js index 7579a7e1..0e906d8e 100644 --- a/bin/wait-for-mastodon-to-start.js +++ b/bin/wait-for-mastodon-to-start.js @@ -4,7 +4,8 @@ async function waitForMastodonToStart () { while (true) { try { let json = await ((await fetch('http://127.0.0.1:3000/api/v1/instance')).json()) - if (json.uri) { + let html = await ((await fetch('http://127.0.0.1:3035/packs/common.js')).text()) + if (json.uri && html) { break } } catch (err) { diff --git a/cypress/integration/01-basic-spec.js b/cypress/integration/01-basic-spec.js index 011b7308..158ee505 100644 --- a/cypress/integration/01-basic-spec.js +++ b/cypress/integration/01-basic-spec.js @@ -8,7 +8,7 @@ describe('Basic spec', () => { }) it('navigates to about', () => { - cy.get('nav a').contains('Settings').click() + cy.get('nav a[aria-label=Settings]').click() cy.url().should('contain', '/settings') cy.get('a').contains('About').click() cy.url().should('contain', '/settings/about') @@ -21,7 +21,7 @@ describe('Basic spec', () => { }) it('navigates to settings/instances', () => { - cy.get('nav a').contains('Settings').click() + cy.get('nav a[aria-label=Settings]').click() cy.url().should('contain', '/settings') cy.get('a').contains('Instances').click() cy.url().should('contain', '/settings/instances') diff --git a/cypress/integration/02-login-spec.js b/cypress/integration/02-login-spec.js index 3cc9c101..55232b1c 100644 --- a/cypress/integration/02-login-spec.js +++ b/cypress/integration/02-login-spec.js @@ -24,12 +24,12 @@ describe('Login spec', () => { it('Logs out', () => { cy.login('foobar@localhost:3000', 'foobarfoobar') - cy.get('nav a').contains('Settings').click() + cy.get('nav a[aria-label=Settings]').click() cy.get('a').contains('Instances').click() cy.get('a').contains('localhost:3000').click() cy.url().should('contain', '/settings/instances/localhost:3000') cy.get('button').contains('Log out').click() - cy.get('button').contains('OK').click() + cy.get('#modal-dialog button').contains('OK').click() cy.url().should('contain', '/settings/instances') cy.contains("You're not logged in to any instances") }) diff --git a/cypress/integration/03-basic-timeline-spec.js b/cypress/integration/03-basic-timeline-spec.js index 58496d15..418766c6 100644 --- a/cypress/integration/03-basic-timeline-spec.js +++ b/cypress/integration/03-basic-timeline-spec.js @@ -44,7 +44,7 @@ describe('Basic timeline spec', () => { }) it('Shows notifications', () => { - cy.get('nav a').contains('Notifications').click() + cy.get('nav a[aria-label=Notifications]').click() cy.url().should('contain', '/notifications') cy.validateTimeline(notifications) @@ -52,14 +52,14 @@ describe('Basic timeline spec', () => { }) it('Shows the local timeline', () => { - cy.get('nav a').contains('Local').click() + cy.get('nav a[aria-label=Local]').click() cy.url().should('contain', '/local') cy.validateTimeline(localTimeline) }) it('Shows the federated timeline', () => { - cy.get('nav a').contains('Community').click() + cy.get('nav a[aria-label=Community]').click() cy.url().should('contain', '/community') cy.get('a').contains('Federated').click() cy.url().should('contain', '/federated') diff --git a/cypress/support/commands.js b/cypress/support/commands.js index 70f552ba..b2ada548 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -64,5 +64,6 @@ Cypress.Commands.add('validateTimeline', (timeline) => { cy.getNthVirtualArticle(i).get('.status-header span').should('contain', 'followed you') } cy.getNthVirtualArticle(i).scrollIntoView() + cy.get('.loading-footer').should('not.exist') }) }) \ No newline at end of file diff --git a/package.json b/package.json index 5af5e151..28676ae1 100644 --- a/package.json +++ b/package.json @@ -8,13 +8,14 @@ "serve": "node server.js", "build": "npm run globalize-css && npm run build-sass && npm run build-svg && sapper build && npm run deglobalize-css", "start": "cross-env NODE_ENV=production node server.js", + "build-and-start": "run-s build start", "build-svg": "node ./bin/build-svg.js", "build-sass": "node ./bin/build-sass.js", "build-sass-watch": "node ./bin/build-sass.js --watch", "run-mastodon": "node ./bin/run-mastodon", "cy:run": "cypress run", "cy:open": "cypress open", - "test": "run-p --race run-mastodon dev test-mastodon", + "test": "run-p --race run-mastodon build-and-start test-mastodon", "test-mastodon": "run-s wait-for-mastodon-to-start cy:run", "wait-for-mastodon-to-start": "node bin/wait-for-mastodon-to-start.js", "globalize-css": "node ./bin/globalize-css.js", diff --git a/routes/_components/NavItem.html b/routes/_components/NavItem.html index 3960f846..1fd8ebd9 100644 --- a/routes/_components/NavItem.html +++ b/routes/_components/NavItem.html @@ -122,7 +122,7 @@ if (page === name) { res += ' (current page)' } - if (name === 'notifications') { + if (name === 'notifications' && $numberOfNotifications) { res += ` (${$numberOfNotifications})` } return res