Skip to content

Commit

Permalink
[email protected]: Add new prop f-restaurant card for review …
Browse files Browse the repository at this point in the history
…threshold (#2511)

* Update: add prop

* Update: add more unit tests

* Update: improve tests

* Update: improve test names

* update: fix linting

* Update: add plus sign to test names

* Update: change the prop name

* Update: fix tests

---------

Co-authored-by: Ben Siggery <[email protected]>
  • Loading branch information
mmakwe-onyeka and siggerzz authored Apr 23, 2024
1 parent 4abc840 commit a1915cf
Show file tree
Hide file tree
Showing 4 changed files with 79 additions and 3 deletions.
10 changes: 9 additions & 1 deletion packages/components/molecules/f-restaurant-card/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,15 @@
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

v1.6.1
## v1.6.2

_April 10, 2024_

### Changed
- Create new prop for f-restaurant-card
- Use prop as the max review threshold to limit the actual number of reviews shown on restaurant card

## v1.6.1

_March 25, 2024_

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@justeat/f-restaurant-card",
"description": "Fozzie Restaurant Card - Responsible for displaying restaurant data and linking to a restaurant",
"version": "1.6.1",
"version": "1.6.2",
"main": "dist/f-restaurant-card.umd.min.js",
"files": [
"dist",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,13 @@ export default {
type: Number,
default: 0
},
/**
* Max amount of ratings to be shown
*/
maxDisplayedRatings: {
type: Number,
default: 200
},
/**
* The max value of the rating
*/
Expand Down Expand Up @@ -161,7 +168,7 @@ export default {
return Number.parseFloat(this.mean).toFixed(1);
},
formattedCount () {
return this.count > 200 ? '200+' : this.count;
return this.count > this.maxDisplayedRatings ? `${this.maxDisplayedRatings}+` : this.count;
}
}
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,67 @@ describe('RestaurantRating component', () => {
});
});

describe('reviews count threshold', () => {
const maxDisplayedRatings = 200;
const rating = '[data-test-id="rating"]';

it('displays the count when count is less than threshold', () => {
// arrange
const propsData = {
mean: 5,
count: 150,
isOwnRating: false,
maxDisplayedRatings
};

// act
const wrapper = mount(RestaurantRating, { propsData });
const countMessage = wrapper.find(rating);

// assert
expect(countMessage.exists()).toBe(true);

expect(countMessage.text()).toStrictEqual('150');
});

it('displays threshold with + when count is higher than threshold', () => {
// arrange
const propsData = {
mean: 5,
count: 250,
isOwnRating: false,
maxDisplayedRatings
};

// act
const wrapper = mount(RestaurantRating, { propsData });
const countMessage = wrapper.find(rating);

// assert
expect(countMessage.exists()).toBe(true);

expect(countMessage.text()).toStrictEqual('200+');
});

it('displays threshold with + when count is higher than threshold with default threshold value', () => {
// arrange
const propsData = {
mean: 5,
count: 250,
isOwnRating: false
};

// act
const wrapper = mount(RestaurantRating, { propsData });
const countMessage = wrapper.find(rating);

// assert
expect(countMessage.exists()).toBe(true);

expect(countMessage.text()).toStrictEqual('200+');
});
});

describe('isOwnRatingMessage is false', () => {
const isOwnRating = false;

Expand Down

0 comments on commit a1915cf

Please sign in to comment.