Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Proposal: haveInRepository returns the created entity instead of the primary key

Aberta
#11 2 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
38/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
php
Domínio
testing

Direção de pesquisa

Comece por src/Codeception/Module/Doctrine2.php, na implementação vinculada de haveInRepository por volta das linhas 504-530, e compare-a com grabEntityFromRepository. Revise o comportamento existente do valor de retorno e os usos relacionados antes de decidir o contrato; considera-se concluído quando a proposta estiver resolvida com um valor de retorno testado e documentado para haveInRepository.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

In many tests i have come across situations like this:

        $I->haveInRepository(User::class, [
            'name' => 'Jane',
            'email' => '[email protected]',
            'password' => '123456',
            'enabled' => true
        ]);
        $user = $I->grabEntityFromRepository(User::class, [
            'email' => '[email protected]'
        ]);
		// do assertions with the $user

Use haveInRepository, and then be forced to use grabEntityFromRepository to get the entity i just persisted. If i want to check that an entity listener is working, for example, i always have to execute those two statements.

My point is that this would be more useful:

        $user = $I->haveInRepository(User::class, [
            'name' => 'Jane',
            'email' => '[email protected]',
            'password' => '123456',
            'enabled' => true
        ]);
		// do assertions with the $user

if i wanted to know the primary key of that entity, i would simply write:

        $user->getId();

In this context, the ORM is useful for its ability to abstract the details of the persistence process and leave it to me as a programmer to worry more about the data i am working with.

I'm not saying that getting the primary key is not useful, i am saying that it is much more useful to get the entity, where there is more information to work with in my tests, including the persistence identifier.

https://github.com/Codeception/module-doctrine2/blob/1ae32bdcd77abde4a583462f5949fc86b9bda2a2/src/Codeception/Module/Doctrine2.php#L504-L530

Please let me know your opinions about it.

Linguagem predominante
PHP
Estrelas
4
Forks
2
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de Codeception/module-doctrine

Todas as issues de Codeception/module-doctrine

Issues semelhantes

Mais issues de PHP

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.