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

Food hygiene rating scheme #179

Merged
merged 9 commits into from
Aug 29, 2023
Merged

Conversation

Dlurak
Copy link
Collaborator

@Dlurak Dlurak commented Aug 27, 2023

This PR would fix #110. I‘ve implemented it as stars and a as a featured tag just like the website or phone number.

Example: https://osmapp.org/way/193321876

@vercel
Copy link

vercel bot commented Aug 27, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated (UTC)
osmapp ✅ Ready (Inspect) Visit Preview Aug 29, 2023 0:19am

Copy link
Owner

@zbycz zbycz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @Dlurak, thanks for another great PR. 👋

];

fhrsIds.forEach(async (id) => {
const rating = await getEstablishmentRatingValue(parseInt(id, 10));
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please mock the fetchJson to return an example response?

jest
      .spyOn(fetch, 'fetchJson')
      .mockResolvedValue(`{ response json ... }`);

Also If the response format is usally the same, one example is enough.

We write unit tests to test our conversion functions. Your test would check if API is working correctly, but if it was down it would block our pipeline. Good rule is "unit tests must work offline".

It could be good to know if shape of their API changed, but this is not role of unit tests. We could have perhaps some "3rd party service status page" checking that.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So I changed it now, but I am not sure if it is right to have the entire API response or if it would be right to just have the relevant parts of the response.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that is perfect. We call it fixtures, and its fine to have long JSONs in tests. This test isn't that much useful, but at least we know what other info is in that api call - for future reference.

Comment on lines 43 to 51
const fhrsId = '269382';
const rating = await getEstablishmentRatingValue(parseInt(fhrsId, 10));

if (Number.isNaN(rating)) {
expect(rating).toBeNaN();
return;
}
expect(rating).toBeGreaterThanOrEqual(0);
expect(rating).toBeLessThanOrEqual(5);
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be enough:

Suggested change
const fhrsId = '269382';
const rating = await getEstablishmentRatingValue(parseInt(fhrsId, 10));
if (Number.isNaN(rating)) {
expect(rating).toBeNaN();
return;
}
expect(rating).toBeGreaterThanOrEqual(0);
expect(rating).toBeLessThanOrEqual(5);
const rating = await getEstablishmentRatingValue(423824);
expect(rating).toBe(5);

@zbycz zbycz merged commit 3c83713 into zbycz:master Aug 29, 2023
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add FHRS (Food Hygiene Rating Scheme) support
2 participants