/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import { later } from '@ember/runloop'; import { Promise } from 'rsvp'; import { inject as service } from '@ember/service'; import Route from '@ember/routing/route'; import Ember from 'ember'; /* eslint-disable ember/no-ember-testing-in-module-scope */ const SPLASH_DELAY = Ember.testing ? 0 : 300; export default Route.extend({ store: service(), version: service(), beforeModel() { return this.version.fetchVersion(); }, model() { // hardcode single cluster const fixture = { data: { id: '1', type: 'cluster', attributes: { name: 'vault', }, }, }; this.store.push(fixture); return new Promise((resolve) => { later(() => { resolve(this.store.peekAll('cluster')); }, SPLASH_DELAY); }); }, redirect(model, transition) { if (model.get('length') === 1 && transition.targetName === 'vault.index') { return this.transitionTo('vault.cluster', model.get('firstObject.name')); } }, });