ArkEcosystemArchive / tier-0-program

Custom Tier 0 development projects in exchange for big bounty rewards. Learn more at https://ark.io/projects.
https://ark.io/projects
4 stars 3 forks source link

[core][500 USD] 100% coverage for core-database #2

Closed faustbrian closed 5 years ago

faustbrian commented 5 years ago

About This Project

The difficulty level of this bounty is estimated as beginner. The reward for completion of this project is set at $500 (paid in ARK Ѧ).

Requirements for completion:

Necessary Skills:

Applying For This Project

To apply for this project, please read more about the process below before leaving a comment with the following:

  1. A brief proposal relating to the project (e.g. Your experience, how you wish to approach the project, estimated time to completion etc.)
  2. Your name and a contact email address (or another form of contact, eg. Slack username)

The Process

Applicant’s will only be permitted to participate in one Tier 0 project at any one time. You can apply for as many projects as you like, but will not be eligible to be accepted until your open projects have been completed. In the meantime the projects may be awarded to other available applicants.

If your application for the project is successful we’ll contact you using the details you provided, assign the project to you and mark it as in progress. You’ll be required to check in regularly with the ARK team to discuss progress and development. We’ll also use these updates to ensure that the PR is being completed to a satisfactory standard. If we determine that the project isn’t being completed to a satisfactory standard and that this cannot be achieved with minor amends or within a satisfactory timeframe, we hold the right to dismiss the PR and reopen the project to other applicants.

To deliver the project your PR must be submitted to the respective repo. ARK repo maintainers will then leave comments and request amends if necessary. All amends requested by maintainers must be resolved before completion, and all projects must comply with our code standards and contribution guidelines (found at: https://docs.ark.io/guidebook/contribution-guidelines/). After you’ve submitted your project, we’ll review against the brief to ensure it meets the criteria and deliverables.

Once your project is approved as complete a member of the ARK team will follow up to discuss payment. You’ll need to submit an invoice and payment will be issued in (Ѧ) ARK (equivalent to the USD reward value assigned to the project), sent to an address of your choosing. We may need to request additional information regarding your identity in order to comply with our own internal Know Your Customer (KYC) guidelines.

If you’re unsuccessful in applying for this particular project, please consider applying for others. Thanks for your interest and good luck with your application!

paroxysm commented 5 years ago

Define 100% coverage, because there's some code-paths that writing tests for has no value and just bloats the tests file.

faustbrian commented 5 years ago

What code specifically did you have in mind that is pointless to test?

vasild commented 5 years ago

One reason to prefer 100% and not be satisfied with e.g. 99.3% is that the latter goes down much easier.

paroxysm commented 5 years ago

There's some code-paths, whose only action is to log some statement. Is there any inherent value in writing a test purely to ensure this? i.e. in database-service.ts - buildWallets method. There's a try-catch, where the catch block logs some statement. In order to get 100% coverage, I would need to write a test to ensure that code gets executed, not exactly a valuable test.

Same with updateDelegatesStats, a try-catch block logs the errors stack. A test to ensure that we always log the error stack is hardly valuable....

faustbrian commented 5 years ago

Those might be skipped as some of those try-catch can be removed anyways as the method that calls something like updateDelegateStats already wraps that into a try-catch.

faustbrian commented 5 years ago

This will be on hold until the release of Core 3.0 as a lot of reworks are happening.

faustbrian commented 5 years ago

Closing as it will be done during the development of Core 3.0.