[ui] links to allocations explicitly go through their route model hook (#17737)
* links to allocations explicitly go through their route model hook * Acceptance test to make sure alloc clicking loads alloc endpoint obj
This commit is contained in:
parent
cfb7efc478
commit
7a60c69b73
|
@ -205,7 +205,7 @@ export default class ClientController extends Controller.extend(
|
|||
|
||||
@action
|
||||
gotoAllocation(allocation) {
|
||||
this.transitionToRoute('allocations.allocation', allocation);
|
||||
this.transitionToRoute('allocations.allocation', allocation.id);
|
||||
}
|
||||
|
||||
@action
|
||||
|
|
|
@ -113,7 +113,7 @@ export default class AllocationsController extends Controller.extend(
|
|||
@action
|
||||
gotoAllocation(allocation, event) {
|
||||
lazyClick([
|
||||
() => this.transitionToRoute('allocations.allocation', allocation),
|
||||
() => this.transitionToRoute('allocations.allocation', allocation.id),
|
||||
event,
|
||||
]);
|
||||
}
|
||||
|
|
|
@ -19,6 +19,6 @@ export default class IndexController extends Controller {
|
|||
|
||||
@action
|
||||
gotoAllocation(allocation) {
|
||||
this.transitionToRoute('allocations.allocation', allocation);
|
||||
this.transitionToRoute('allocations.allocation', allocation.id);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -60,6 +60,6 @@ export default class VolumeController extends Controller {
|
|||
|
||||
@action
|
||||
gotoAllocation(allocation) {
|
||||
this.transitionToRoute('allocations.allocation', allocation);
|
||||
this.transitionToRoute('allocations.allocation', allocation.id);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -166,7 +166,7 @@ export default class AllocationsController extends Controller.extend(
|
|||
|
||||
@action
|
||||
gotoAllocation(allocation) {
|
||||
this.transitionToRoute('allocations.allocation', allocation);
|
||||
this.transitionToRoute('allocations.allocation', allocation.id);
|
||||
}
|
||||
|
||||
get optionsAllocationStatus() {
|
||||
|
|
|
@ -140,7 +140,7 @@ export default class TaskGroupController extends Controller.extend(
|
|||
|
||||
@action
|
||||
gotoAllocation(allocation) {
|
||||
this.transitionToRoute('allocations.allocation', allocation);
|
||||
this.transitionToRoute('allocations.allocation', allocation.id);
|
||||
}
|
||||
|
||||
@action
|
||||
|
|
|
@ -50,6 +50,9 @@ export default class AllocationRoute extends Route.extend(WithWatchers) {
|
|||
super.model(...arguments),
|
||||
this.store.findAll('namespace'),
|
||||
]);
|
||||
if (allocation.isPartial) {
|
||||
await allocation.reload();
|
||||
}
|
||||
const jobId = allocation.belongsTo('job').id();
|
||||
await this.store.findRecord('job', jobId);
|
||||
return allocation;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
*/
|
||||
|
||||
/* eslint-disable qunit/require-expect */
|
||||
import { currentURL } from '@ember/test-helpers';
|
||||
import { currentURL, click, find } from '@ember/test-helpers';
|
||||
import { module, test } from 'qunit';
|
||||
import { setupApplicationTest } from 'ember-qunit';
|
||||
import { setupMirage } from 'ember-cli-mirage/test-support';
|
||||
|
@ -77,6 +77,33 @@ module('Acceptance | job allocations', function (hooks) {
|
|||
assert.equal(document.title, `Job ${job.name} allocations - Nomad`);
|
||||
});
|
||||
|
||||
test('clicking an allocation results in the correct endpoint being hit', async function (assert) {
|
||||
server.createList('allocation', Allocations.pageSize - 1, {
|
||||
shallow: true,
|
||||
});
|
||||
allocations = server.schema.allocations.where({ jobId: job.id }).models;
|
||||
|
||||
await Allocations.visit({ id: job.id });
|
||||
|
||||
const firstAllocation = find('[data-test-allocation]');
|
||||
await click(firstAllocation);
|
||||
|
||||
const requestToAllocationEndpoint = server.pretender.handledRequests.find(
|
||||
(request) =>
|
||||
request.url.includes(
|
||||
`/v1/allocation/${firstAllocation.dataset.testAllocation}`
|
||||
)
|
||||
);
|
||||
|
||||
assert.ok(requestToAllocationEndpoint, 'the correct endpoint is hit');
|
||||
|
||||
assert.equal(
|
||||
currentURL(),
|
||||
`/allocations/${firstAllocation.dataset.testAllocation}`,
|
||||
'the URL is correct'
|
||||
);
|
||||
});
|
||||
|
||||
test('allocations table is sortable', async function (assert) {
|
||||
server.createList('allocation', Allocations.pageSize - 1);
|
||||
allocations = server.schema.allocations.where({ jobId: job.id }).models;
|
||||
|
|
Loading…
Reference in New Issue