From 8aa0230ae10a393b5ea0fc726eb6c5515a6833d2 Mon Sep 17 00:00:00 2001 From: Futa Ikeda Date: Thu, 28 Oct 2021 15:51:06 -0400 Subject: [PATCH 1/6] Wait for provider to load for subject search --- .../addon/components/subjects/manager/component.ts | 4 ++-- .../addon/components/subjects/search/component.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/osf-components/addon/components/subjects/manager/component.ts b/lib/osf-components/addon/components/subjects/manager/component.ts index 7b74acd5a7b..de1f64c95b3 100644 --- a/lib/osf-components/addon/components/subjects/manager/component.ts +++ b/lib/osf-components/addon/components/subjects/manager/component.ts @@ -34,7 +34,7 @@ export interface SubjectManager { savedSubjects: SubjectModel[]; isSaving: boolean; hasChanged: boolean; - provider: ProviderModel; + provider: Promise; selectSubject(subject: SubjectModel): void; unselectSubject(subject: SubjectModel): void; @@ -51,7 +51,7 @@ export interface SubjectManager { export default class SubjectManagerComponent extends Component { // required model!: ModelWithSubjects; - provider!: ProviderModel; + provider!: Promise; doesAutosave!: boolean; // optional diff --git a/lib/osf-components/addon/components/subjects/search/component.ts b/lib/osf-components/addon/components/subjects/search/component.ts index e2267453c5f..f9fa9b38ad0 100644 --- a/lib/osf-components/addon/components/subjects/search/component.ts +++ b/lib/osf-components/addon/components/subjects/search/component.ts @@ -36,7 +36,7 @@ export default class SearchSubjects extends Component { async doSearch() { await timeout(500); // debounce - const { provider } = this.subjectsManager; + const provider = await this.subjectsManager.provider; const { userQuery } = this; if (!userQuery) { From c7a5fee4378d8d3511ef3ee89f16b1e5f82daf9b Mon Sep 17 00:00:00 2001 From: Futa Ikeda Date: Tue, 2 Nov 2021 11:16:40 -0400 Subject: [PATCH 2/6] Resolve promise before passing it to subject manager --- .../components/subjects/manager/component.ts | 4 +- .../components/subjects/search/component.ts | 2 +- .../registries-metadata/component.ts | 11 ++++ .../registries-metadata/template.hbs | 54 ++++++++++--------- 4 files changed, 42 insertions(+), 29 deletions(-) diff --git a/lib/osf-components/addon/components/subjects/manager/component.ts b/lib/osf-components/addon/components/subjects/manager/component.ts index de1f64c95b3..7b74acd5a7b 100644 --- a/lib/osf-components/addon/components/subjects/manager/component.ts +++ b/lib/osf-components/addon/components/subjects/manager/component.ts @@ -34,7 +34,7 @@ export interface SubjectManager { savedSubjects: SubjectModel[]; isSaving: boolean; hasChanged: boolean; - provider: Promise; + provider: ProviderModel; selectSubject(subject: SubjectModel): void; unselectSubject(subject: SubjectModel): void; @@ -51,7 +51,7 @@ export interface SubjectManager { export default class SubjectManagerComponent extends Component { // required model!: ModelWithSubjects; - provider!: Promise; + provider!: ProviderModel; doesAutosave!: boolean; // optional diff --git a/lib/osf-components/addon/components/subjects/search/component.ts b/lib/osf-components/addon/components/subjects/search/component.ts index f9fa9b38ad0..e2267453c5f 100644 --- a/lib/osf-components/addon/components/subjects/search/component.ts +++ b/lib/osf-components/addon/components/subjects/search/component.ts @@ -36,7 +36,7 @@ export default class SearchSubjects extends Component { async doSearch() { await timeout(500); // debounce - const provider = await this.subjectsManager.provider; + const { provider } = this.subjectsManager; const { userQuery } = this; if (!userQuery) { diff --git a/lib/registries/addon/components/registries-metadata/component.ts b/lib/registries/addon/components/registries-metadata/component.ts index 1f6c8cfe068..8f910585b33 100644 --- a/lib/registries/addon/components/registries-metadata/component.ts +++ b/lib/registries/addon/components/registries-metadata/component.ts @@ -1,10 +1,14 @@ import { tagName } from '@ember-decorators/component'; import Component from '@ember/component'; import { computed } from '@ember/object'; +import { waitFor } from '@ember/test-waiters'; +import { tracked } from '@glimmer/tracking'; +import { task } from 'ember-concurrency'; import config from 'ember-get-config'; import { layout } from 'ember-osf-web/decorators/component'; import Registration from 'ember-osf-web/models/registration'; +import RegistrationProviderModel from 'ember-osf-web/models/registration-provider'; import styles from './styles'; import template from './template'; @@ -22,9 +26,16 @@ export default class RegistriesMetadata extends Component { registration?: Registration; extendedFields?: boolean; + @tracked provider?: RegistrationProviderModel; // Private properties expandCitations = false; + @task({ on: 'didReceiveAttrs'}) + @waitFor + async fetchProvider() { + this.provider = await this.registration?.provider; + } + @computed('registration') get registeredFromId() { if (!this.registration) { diff --git a/lib/registries/addon/components/registries-metadata/template.hbs b/lib/registries/addon/components/registries-metadata/template.hbs index 6bb6fe4a306..3b6e0bd99b9 100644 --- a/lib/registries/addon/components/registries-metadata/template.hbs +++ b/lib/registries/addon/components/registries-metadata/template.hbs @@ -181,34 +181,36 @@
- - - - - - - - - - - - + + + + + + + + + + + {{/if}}
From fec33f6b22fe21626f93704eadeb9720e5832e85 Mon Sep 17 00:00:00 2001 From: Futa Ikeda Date: Tue, 2 Nov 2021 11:17:52 -0400 Subject: [PATCH 3/6] Add tests --- .../subjects/browse/item/template.hbs | 2 +- .../components/subjects/display/template.hbs | 4 +- .../search/search-result/template.hbs | 7 +++- .../components/subjects/search/template.hbs | 1 + .../components/subjects/widget/template.hbs | 1 + mirage/config.ts | 2 +- .../acceptance/overview/overview-test.ts | 38 ++++++++++++++++++- 7 files changed, 49 insertions(+), 6 deletions(-) diff --git a/lib/osf-components/addon/components/subjects/browse/item/template.hbs b/lib/osf-components/addon/components/subjects/browse/item/template.hbs index 470658a8dfd..2a05839f89c 100644 --- a/lib/osf-components/addon/components/subjects/browse/item/template.hbs +++ b/lib/osf-components/addon/components/subjects/browse/item/template.hbs @@ -5,7 +5,7 @@ ...attributes >