Azure / Azure/aks-desktop

plugins/aks-desktop: Fix components to separate logic from presentation with tests and docs (umbrella issue)

Open
#42 1 comment 0 reactions 0 assignees View on GitHub
p1
Dominant language
TypeScript
Stars
102
Forks
25
Avg merge
1d 4h
Merged PRs (30d)
22

Description

Many components mix up presentation and other logic, and could use some separation.
This is an umbrella issue, see sub issues.

This makes it easier to test both the presentation and the logic. As well it makes it easier to understand, change and maintain.

- [x] investigate which components especially need this done (the ones below are a good start)
- [x] get full list of components
- [x] estimated ~3-4 days per component (tested, documented and reviewed)
- [x] ~2 days (DeployButton, LogsTab, DeployWizard, ScalingCard, MetricsCard)
- [x] ~4 days (AzureProfilePage, AzureLoginPage, RegisterAKSClusterDialog, BasicsStep, AKSProjectDeleteButton)
- [x] ~5 days (InfoTab, ScalingTab, MetricsTab, ImportAKSProjects, CreateAKSProject)

---

Note: Each component has error and loading states.

---

Document all the code (functions, interfaces, components, etc) with tsdoc.

Notes:

- see https://tsdoc.org/ if you are not familiar.
- All props should be exported interfaces (because easier for storybooks)
- Please don't write things like for the color prop docs like "the color" but instead write any info people might need. Like "background color as hex, note to check accessibility".
- rename to be self documenting as well if it helps. eg, instead of col, backgroundColor or backgroundHexColor (if it needs to be hex).
- Use decorators like "@see" and "@example" where it matters. https://tsdoc.org/

---
Estimate: 11 weeks

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the component list and its sub-issues, beginning with the named components such as DeployButton, LogsTab, and DeployWizard. Read the existing component implementations and tests to identify presentation and logic boundaries. Done means the selected components separate those concerns, include tests for their states, and have documented TypeScript interfaces, functions, and components with TSDoc.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
desktop, documentation, testing
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.