ruby-grape / ruby-grape/grape-entity
Why do I have to call .as_json twice to get a proper representation
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 729
- Forks
- 154
- PR merge metrics
- No merged PRs in 30d
Description
Hi! I'm trying to use my entity to ensure the returned data in the API matches what my Entity should be exposing in a RSpec request spec in my rails application.
I'm doing this:
it 'returns the change events for the incident as json' do
authed_get "/v1/incidents/#{incident.id}/related_change_events"
expect(parsed['data']).to match_array(PublicAPI::V1::Incidents::RelatedChangeEventEntity.represent(related_change_events).as_json.as_json)
end
This makes my test pass, but why do I have to call #as_json twice? This feels weird to me and I don't see a method on the Grape::Entity class that gives me what I want. More of a question than a bug but I see room for improvement here.
Thanks!
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names Grape::Entity, represent, and the RSpec request-spec call chain, but no repository files or tests. Start by reproducing the reported behavior around RelatedChangeEventEntity.represent(...).as_json.as_json and inspect Grape::Entity's representation methods. Done means establishing whether a supported single-call representation is possible and documenting or scoping the required improvement.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- api
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100