code-corps / code-corps/code-corps-ember

Extract project join status from project-card component into a separate component

Aperta
#1,181 0 commenti 0 reazioni 1 assegnatario Rivendicata da @daveconnis Vedi su GitHub
Difficulty: Easy Skill: ember-cli-page-object Skill: Ember.js Skill: JavaScript Skill: Testing
Lingua principale
JavaScript
Stelle
120
Fork
75
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

# Problem

The logic for the project status/join button in the project card template is highly complex. We could simplify it by extracting a part.

The following code:

```handlebars
{{#if currentProjectMembership.isLoaded}}
{{#if (eq currentProjectMembership.role 'pending')}}
Request sent
{{else}}
Member
{{/if}}
{{/if}}

{{#unless currentProjectMembership}}
{{project-join-modal project=project skills=projectSkills}}
{{/unless}}
```

should be replaced with the equivalent of:

```handlebars
{{#if currentProjectMembership}}
{{membership-status membership=currentProjectMembership}}
{{else}}
{{project-join-modal project=project skills=projectSkills}}
{{/if}}
```

## Subtasks

- [ ] Implement component
- Write integration tests for component
- [ ] If current project membership is loading, it renders nothing
- [ ] If current project membership is loaded and role is pending, it renders the "Request sent" button
- [ ] If current project membership is loaded and role is something else, it renders the "Member" button
- [ ] A page-object should be written for these tests
- [ ] Replace code with component
- Add integration tests for project card component
- [ ] If there is a current project membership, it renders the project-membership-subcomponent
- [ ] If there is no current project membership, it renders the project-join-modal subcomponent
- [ ] The project-card page object will need to be expanded with two new properties for this

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.