Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Project improvements #245

Closed
acelaya opened this issue Apr 10, 2020 · 0 comments
Closed

Project improvements #245

acelaya opened this issue Apr 10, 2020 · 0 comments
Labels
enhancement New feature or request tech-debt

Comments

@acelaya
Copy link
Member

acelaya commented Apr 10, 2020

The project is starting to suffer a bit of tech debt, and there are a few things that can be done to solve it.

Improve tests

Issues: #145

The first thing that should be done is improving the tests base, making it more resilient.

Currently, the project only has unit tests, and specially for UI components, they are fragile and hard to maintain, and the value they add is limited. It's easy to break a test by changing some behavior that does not really imply a change for end-users.

I think that the project needs some kind of test where the app is run in a headless browser, in order to test the UI, and this would allow replacing the unit tests for components.

For some cases, we can even take snapshots (in the sense of actual screenshots of what's displayed), and just verify that what's actually rendered matches them.

We could even consider having the same tests pass for different screen resolutions.

However, there's a lot of dependency-less business logic outside of components for which we can keep unit tests.

Remove dependency injection container

A while ago I added DI to the project, by using a dependency injection container.

It has provided some benefits, but due to the way react and redux work, it has also become the source of many problems.

It was mainly added to ease unit testing stuff, but if previous point is properly done, that would no longer be a problem.

For the few cases in which we still have a bit of coupling, jest's mechanism to mock imports can be used. It's ugly, but it's probably the least of two evils.

Migrate to typescript Done!

Issue: #40
PR: #296

The project needs strict types desperatelly. The project should be migrated to typescript ASAP.

@acelaya acelaya added enhancement New feature or request tech-debt labels Apr 10, 2020
@acelaya acelaya added this to the 2.5.0 milestone Apr 10, 2020
@acelaya acelaya modified the milestones: 2.5.0, 2.6.0 May 31, 2020
@acelaya acelaya removed this from the 2.6.0 milestone Aug 22, 2020
@acelaya acelaya closed this as completed Jan 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request tech-debt
Projects
None yet
Development

No branches or pull requests

1 participant