diff --git a/legal-api/src/legal_api/models/review_result.py b/legal-api/src/legal_api/models/review_result.py index fcbf5f1ad6..1e4096e0cb 100644 --- a/legal-api/src/legal_api/models/review_result.py +++ b/legal-api/src/legal_api/models/review_result.py @@ -78,5 +78,5 @@ def json(self) -> dict: 'comments': self.comments, 'reviewer': self.reviewer.display_name, 'submissionDate': self.submission_date.isoformat() if self.submission_date else None, - 'creationDate': self.creation_date + 'creationDate': self.creation_date.isoformat() } diff --git a/legal-api/src/legal_api/resources/v2/admin/reviews.py b/legal-api/src/legal_api/resources/v2/admin/reviews.py index 91263b3c8c..3e51a4da73 100644 --- a/legal-api/src/legal_api/resources/v2/admin/reviews.py +++ b/legal-api/src/legal_api/resources/v2/admin/reviews.py @@ -32,7 +32,7 @@ def get_reviews(): limit = int(request.args.get('limit', 10)) reviews = Review.get_paginated_reviews(page, limit) - return reviews, HTTPStatus.OK + return jsonify(reviews), HTTPStatus.OK @bp_admin.route('/reviews/', methods=['GET', 'OPTIONS']) diff --git a/legal-api/tests/unit/resources/v2/test_reviews.py b/legal-api/tests/unit/resources/v2/test_reviews.py index 237cc620e1..9cd56d25e1 100644 --- a/legal-api/tests/unit/resources/v2/test_reviews.py +++ b/legal-api/tests/unit/resources/v2/test_reviews.py @@ -32,7 +32,7 @@ from tests.unit.models import factory_filing -def basic_test_review(): +def create_test_review(no_of_reviews=1): filing_dict = { 'filing': { 'header': { @@ -44,52 +44,49 @@ def basic_test_review(): } } filing_dict['filing']['continuationIn'] = copy.deepcopy(CONTINUATION_IN) - filing = factory_filing(None, filing_dict) - review = Review() - review.filing_id = filing.id - review.nr_number = filing_dict['filing']['continuationIn']['nameRequest']['nrNumber'] - review.identifier = filing_dict['filing']['continuationIn']['foreignJurisdiction']['identifier'] - review.completing_party = 'completing party' - review.status = ReviewStatus.AWAITING_REVIEW + reviews = [] + for _ in range(no_of_reviews): + filing = factory_filing(None, filing_dict) - return review + review = Review() + review.filing_id = filing.id + review.nr_number = filing_dict['filing']['continuationIn']['nameRequest']['nrNumber'] + review.identifier = filing_dict['filing']['continuationIn']['foreignJurisdiction']['identifier'] + review.completing_party = 'completing party' + review.status = ReviewStatus.AWAITING_REVIEW + review.save() + reviews.append(review) + + return reviews def test_get_reviews_with_invalid_user(app, session, client, jwt): """Assert unauthorized for BASIC_USER role.""" - rv = client.get(f'/api/v2/admin/reviews', headers=create_header(jwt, [BASIC_USER], 'user')) - assert rv.status_code == HTTPStatus.UNAUTHORIZED + def test_get_reviews_with_valid_user(app, session, client, jwt): """Assert review object returned for STAFF role.""" - - review_one = basic_test_review() - review_one.save() - - review_two = basic_test_review() - review_two.save() - - review_three = basic_test_review() - review_three.save() + no_of_reviews = 11 + create_test_review(no_of_reviews) rv = client.get(f'/api/v2/admin/reviews', headers=create_header(jwt, [STAFF_ROLE], 'user')) assert rv.status_code == HTTPStatus.OK - assert 'reviews' in rv.json + assert len(rv.json.get('reviews')) == 10 assert 1 == rv.json.get('page') assert 10 == rv.json.get('limit') - assert 3 == rv.json.get('total') + assert no_of_reviews == rv.json.get('total') + def test_get_specific_review_with_valid_user(app, session, client, jwt, mocker): """Assert specific review object returned for STAFF role.""" - review = basic_test_review() - review.save() - + review = create_test_review(1)[0] + base_url = current_app.config.get('LEGAL_API_BASE_URL') mock_filing = mocker.Mock() @@ -102,22 +99,22 @@ def test_get_specific_review_with_valid_user(app, session, client, jwt, mocker): rv = client.get(f'/api/v2/admin/reviews/{review.id}', headers=create_header(jwt, [STAFF_ROLE], 'user')) - assert rv.status_code == HTTPStatus.OK assert rv.json['id'] == review.id assert 'filingLink' in rv.json assert rv.json['filingLink'] == f'{base_url}/{mock_filing.temp_reg}/filings/{mock_filing.id}' + def test_get_specific_review_with_invalid_user(app, session, client, jwt): """Assert unauthorized for BASIC_USER role when getting a specific review.""" - review = basic_test_review() - review.save() + review = create_test_review(1)[0] rv = client.get(f'/api/v2/admin/reviews/{review.id}', headers=create_header(jwt, [BASIC_USER], 'user')) assert rv.status_code == HTTPStatus.UNAUTHORIZED + def test_get_nonexistent_review(app, session, client, jwt): """Assert not found for non-existent review ID.""" rv = client.get('/api/v2/admin/reviews/99999',