From 2675a6afe2d6bc5b2249362e04dfa18cc74eb1bf Mon Sep 17 00:00:00 2001 From: hi-rustin Date: Fri, 19 Mar 2021 09:06:34 +0800 Subject: [PATCH 1/2] Redirect /owners to /settings fix typo fix test: add cases test: add cases --- .../crate/{owners.js => settings.js} | 2 +- app/router.js | 1 + app/routes/crate/owners.js | 6 ++-- app/routes/crate/settings.js | 9 ++++++ ...{owners.module.css => settings.module.css} | 0 .../crate/{owners.hbs => settings.hbs} | 2 +- tests/acceptance/crate-test.js | 4 +-- .../{owners-test.js => settings-test.js} | 32 ++++++++++++++----- 8 files changed, 41 insertions(+), 15 deletions(-) rename app/controllers/crate/{owners.js => settings.js} (95%) create mode 100644 app/routes/crate/settings.js rename app/styles/crate/{owners.module.css => settings.module.css} (100%) rename app/templates/crate/{owners.hbs => settings.hbs} (97%) rename tests/acceptance/{owners-test.js => settings-test.js} (82%) diff --git a/app/controllers/crate/owners.js b/app/controllers/crate/settings.js similarity index 95% rename from app/controllers/crate/owners.js rename to app/controllers/crate/settings.js index c3686705ade..07e02eb7ec6 100644 --- a/app/controllers/crate/owners.js +++ b/app/controllers/crate/settings.js @@ -3,7 +3,7 @@ import { inject as service } from '@ember/service'; import { task } from 'ember-concurrency'; -export default class CrateOwnersController extends Controller { +export default class CrateSettingsController extends Controller { @service notifications; crate = null; diff --git a/app/router.js b/app/router.js index d1cb61f263b..2388120c9c4 100644 --- a/app/router.js +++ b/app/router.js @@ -20,6 +20,7 @@ Router.map(function () { this.route('reverse-dependencies', { path: 'reverse_dependencies' }); this.route('owners'); + this.route('settings'); // Well-known routes this.route('docs'); diff --git a/app/routes/crate/owners.js b/app/routes/crate/owners.js index a2abad0eed9..22e86c29733 100644 --- a/app/routes/crate/owners.js +++ b/app/routes/crate/owners.js @@ -1,9 +1,9 @@ import Route from '@ember/routing/route'; export default class OwnersRoute extends Route { - setupController(controller) { - super.setupController(...arguments); + redirect() { let crate = this.modelFor('crate'); - controller.set('crate', crate); + + this.transitionTo('crate.settings', crate); } } diff --git a/app/routes/crate/settings.js b/app/routes/crate/settings.js new file mode 100644 index 00000000000..bb3bc9f1fcd --- /dev/null +++ b/app/routes/crate/settings.js @@ -0,0 +1,9 @@ +import Route from '@ember/routing/route'; + +export default class SettingsRoute extends Route { + setupController(controller) { + super.setupController(...arguments); + let crate = this.modelFor('crate'); + controller.set('crate', crate); + } +} diff --git a/app/styles/crate/owners.module.css b/app/styles/crate/settings.module.css similarity index 100% rename from app/styles/crate/owners.module.css rename to app/styles/crate/settings.module.css diff --git a/app/templates/crate/owners.hbs b/app/templates/crate/settings.hbs similarity index 97% rename from app/templates/crate/owners.hbs rename to app/templates/crate/settings.hbs index aa110e666a4..623b238a95e 100644 --- a/app/templates/crate/owners.hbs +++ b/app/templates/crate/settings.hbs @@ -1,4 +1,4 @@ -{{page-title 'Manage Crate Owners'}} +{{page-title 'Manage Crate Settings'}} diff --git a/tests/acceptance/crate-test.js b/tests/acceptance/crate-test.js index 37976c5c6d2..bba3a199949 100644 --- a/tests/acceptance/crate-test.js +++ b/tests/acceptance/crate-test.js @@ -201,7 +201,7 @@ module('Acceptance | crate page', function (hooks) { assert.dom('[data-test-settings-tab]').doesNotExist(); }); - test('navigating to the owners page', async function (assert) { + test('navigating to the settings page', async function (assert) { this.server.loadFixtures(); let user = this.server.schema.users.findBy({ login: 'thehydroimpulse' }); @@ -210,6 +210,6 @@ module('Acceptance | crate page', function (hooks) { await visit('/crates/nanomsg'); await click('[data-test-settings-tab] a'); - assert.equal(currentURL(), '/crates/nanomsg/owners'); + assert.equal(currentURL(), '/crates/nanomsg/settings'); }); }); diff --git a/tests/acceptance/owners-test.js b/tests/acceptance/settings-test.js similarity index 82% rename from tests/acceptance/owners-test.js rename to tests/acceptance/settings-test.js index 7787c7c05a2..1284ba8aa4d 100644 --- a/tests/acceptance/owners-test.js +++ b/tests/acceptance/settings-test.js @@ -8,12 +8,28 @@ import { setupApplicationTest } from 'cargo/tests/helpers'; import axeConfig from '../axe-config'; -module('Acceptance | /crates/:name/owners', function (hooks) { +module('Acceptance | /crates/:name/settings', function (hooks) { setupApplicationTest(hooks); test('listing crate owners', async function (assert) { this.server.loadFixtures(); + await visit('/crates/nanomsg/settings'); + + assert.dom('[data-test-owners] [data-test-owner-team]').exists({ count: 2 }); + assert.dom('[data-test-owners] [data-test-owner-user]').exists({ count: 2 }); + assert.dom('a[href="/teams/github:org:thehydroimpulse"]').exists(); + assert.dom('a[href="/teams/github:org:blabaere"]').exists(); + assert.dom('a[href="/users/thehydroimpulse"]').exists(); + assert.dom('a[href="/users/blabaere"]').exists(); + + await percySnapshot(assert); + await a11yAudit(axeConfig); + }); + + test('redirecting and listing crate owners', async function (assert) { + this.server.loadFixtures(); + await visit('/crates/nanomsg/owners'); assert.dom('[data-test-owners] [data-test-owner-team]').exists({ count: 2 }); @@ -30,7 +46,7 @@ module('Acceptance | /crates/:name/owners', function (hooks) { test('attempting to add owner without username', async function (assert) { this.server.loadFixtures(); - await visit('/crates/nanomsg/owners'); + await visit('/crates/nanomsg/settings'); await fillIn('input[name="username"]', ''); assert.dom('[data-test-save-button]').isDisabled(); }); @@ -38,7 +54,7 @@ module('Acceptance | /crates/:name/owners', function (hooks) { test('attempting to add non-existent owner', async function (assert) { this.server.loadFixtures(); - await visit('/crates/nanomsg/owners'); + await visit('/crates/nanomsg/settings'); await fillIn('input[name="username"]', 'spookyghostboo'); await click('[data-test-save-button]'); @@ -52,7 +68,7 @@ module('Acceptance | /crates/:name/owners', function (hooks) { test('add a new owner', async function (assert) { this.server.loadFixtures(); - await visit('/crates/nanomsg/owners'); + await visit('/crates/nanomsg/settings'); await fillIn('input[name="username"]', 'iain8'); await click('[data-test-save-button]'); @@ -64,7 +80,7 @@ module('Acceptance | /crates/:name/owners', function (hooks) { test('remove a crate owner when owner is a user', async function (assert) { this.server.loadFixtures(); - await visit('/crates/nanomsg/owners'); + await visit('/crates/nanomsg/settings'); await click('[data-test-owner-user="thehydroimpulse"] [data-test-remove-owner-button]'); assert.dom('[data-test-notification-message="success"]').hasText('User thehydroimpulse removed as crate owner'); @@ -86,7 +102,7 @@ module('Acceptance | /crates/:name/owners', function (hooks) { this.authenticateAs(user); - await visit(`/crates/${crate.name}/owners`); + await visit(`/crates/${crate.name}/settings`); await click(`[data-test-owner-user="${user2.login}"] [data-test-remove-owner-button]`); assert @@ -98,7 +114,7 @@ module('Acceptance | /crates/:name/owners', function (hooks) { test('remove a crate owner when owner is a team', async function (assert) { this.server.loadFixtures(); - await visit('/crates/nanomsg/owners'); + await visit('/crates/nanomsg/settings'); await click('[data-test-owner-team="github:org:thehydroimpulse"] [data-test-remove-owner-button]'); assert @@ -122,7 +138,7 @@ module('Acceptance | /crates/:name/owners', function (hooks) { this.authenticateAs(user); - await visit(`/crates/${crate.name}/owners`); + await visit(`/crates/${crate.name}/settings`); await click(`[data-test-owner-team="${team.login}"] [data-test-remove-owner-button]`); assert From ed31d06e59fdcd1566bda25ace4894836fb6a364 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Fri, 19 Mar 2021 10:49:05 +0100 Subject: [PATCH 2/2] tests/settings: Simplify redirection test --- tests/acceptance/settings-test.js | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/tests/acceptance/settings-test.js b/tests/acceptance/settings-test.js index 1284ba8aa4d..39bdca739cc 100644 --- a/tests/acceptance/settings-test.js +++ b/tests/acceptance/settings-test.js @@ -1,4 +1,4 @@ -import { click, fillIn, visit } from '@ember/test-helpers'; +import { click, currentURL, fillIn, visit } from '@ember/test-helpers'; import { module, test } from 'qunit'; import percySnapshot from '@percy/ember'; @@ -15,6 +15,7 @@ module('Acceptance | /crates/:name/settings', function (hooks) { this.server.loadFixtures(); await visit('/crates/nanomsg/settings'); + assert.equal(currentURL(), '/crates/nanomsg/settings'); assert.dom('[data-test-owners] [data-test-owner-team]').exists({ count: 2 }); assert.dom('[data-test-owners] [data-test-owner-user]').exists({ count: 2 }); @@ -27,20 +28,11 @@ module('Acceptance | /crates/:name/settings', function (hooks) { await a11yAudit(axeConfig); }); - test('redirecting and listing crate owners', async function (assert) { + test('/crates/:name/owners redirects to /crates/:name/settings', async function (assert) { this.server.loadFixtures(); await visit('/crates/nanomsg/owners'); - - assert.dom('[data-test-owners] [data-test-owner-team]').exists({ count: 2 }); - assert.dom('[data-test-owners] [data-test-owner-user]').exists({ count: 2 }); - assert.dom('a[href="/teams/github:org:thehydroimpulse"]').exists(); - assert.dom('a[href="/teams/github:org:blabaere"]').exists(); - assert.dom('a[href="/users/thehydroimpulse"]').exists(); - assert.dom('a[href="/users/blabaere"]').exists(); - - await percySnapshot(assert); - await a11yAudit(axeConfig); + assert.equal(currentURL(), '/crates/nanomsg/settings'); }); test('attempting to add owner without username', async function (assert) {