Beispiel #1
0
test('when breadcrumbs are pending promises, an ellipsis is rendered', function(assert) {
  let resolvePromise;
  const promise = new RSVP.Promise(resolve => {
    resolvePromise = resolve;
  });

  this.breadcrumbs.set('breadcrumbs', [
    { label: 'One', args: ['one'] },
    PromiseObject.create({ promise }),
    { label: 'Three', args: ['three'] },
  ]);

  this.render(template);

  assert.equal(
    findAll('[data-test-breadcrumb]')[1].textContent.trim(),
    '…',
    'Promise breadcrumb is in a loading state'
  );

  resolvePromise({ label: 'Two', args: ['two'] });

  return wait().then(() => {
    assert.equal(
      findAll('[data-test-breadcrumb]')[1].textContent.trim(),
      'Two',
      'Promise breadcrumb has resolved and now renders Two'
    );
  });
});
Beispiel #2
0
export const jobCrumbs = job => {
  if (!job) return [];

  if (job.get('parent.content')) {
    return [
      PromiseObject.create({
        promise: job.get('parent').then(parent => jobCrumb(parent)),
      }),
      jobCrumb(job),
    ];
  } else {
    return [jobCrumb(job)];
  }
};
Beispiel #3
0
    const manyDynamic = makeRoute(
      model => [
        { label: get(model, 'fishOne'), args: ['dynamic.index', get(model, 'fishOne')] },
        { label: get(model, 'fishTwo'), args: ['dynamic.index', get(model, 'fishTwo')] },
      ],
      {
        model: {
          fishOne: 'red',
          fishTwo: 'blue',
        },
      }
    );
    const promise = makeRoute([
      PromiseObject.create({
        promise: RSVP.Promise.resolve({
          label: 'delayed',
          args: ['wait.for.it'],
        }),
      }),
    ]);
    const fromURL = makeRoute(model => [{ label: model, args: ['url'] }], {
      router: getOwner(this).lookup('service:router'),
      model: alias('router.currentURL'),
    });

    this.register('route:none', none);
    this.register('route:none.more-none', none);
    this.register('route:static', fixed);
    this.register('route:static.many', manyFixed);
    this.register('route:dynamic', dynamic);
    this.register('route:dynamic.many', manyDynamic);
    this.register('route:promise', promise);