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

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

Ouverte
#1,181 0 commentaires 0 réactions 1 personne assignée Réclamée par @daveconnis Voir sur GitHub
Difficulty: Easy Skill: ember-cli-page-object Skill: Ember.js Skill: JavaScript Skill: Testing
Langage dominant
JavaScript
Étoiles
120
Forks
75
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

# 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

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.