Generate passing live tests when schema and table names are equal #6477
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When the live generator is used with a schema name that is the same as the table name, the generated tests should not fail.
This change makes sure that the generated tests correctly target the collection item elements. We use the
schema.collection
by default and useschema.table
when the primary key is not named:id
.The following generator calling variations should therefore work as intended:
mix phx.gen.live Bibliography Series series name:string
mix phx.gen.live Bibliography Author authors name:string
mix phx.gen.live Bibliography Buyer buyer name:string --primary-key buyer_id
mix phx.gen.live Bibliography Seller sellers name:string --primary-key seller_id
For context, before this change, calling the generator with the same word for schema name and table name (e.g.
mix phx.gen.live Bibliography Series series name:string
) resulted in failing tests with errors like:Reason being, that the stream used to generate the listing was named after the
schema.collection
which was in this case suffixed with_collection
while the tests used theschema.plural
value.For reference see: