# Fabricantes gerando nomes duplicados devido ao banco de dados de teste local antigo

**URL:** <https://meta.discourse.org/t/fabricators-generating-duplicate-names-because-of-aging-local-test-database/326197>\
**Category:** Development\
**Created:** [Setembro 12, 2024, 1:30pm UTC](https://meta.discourse.org/t/fabricators-generating-duplicate-names-because-of-aging-local-test-database/326197 "2024-09-12T13:30:15Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [Setembro 12, 2024, 1:30pm UTC](https://meta.discourse.org/t/fabricators-generating-duplicate-names-because-of-aging-local-test-database/326197/1 "2024-09-12T13:30:15Z")

</div>

Tive uma série de testes falhando com erros como este:

```plaintext
ActiveRecord::RecordInvalid:
       Validation failed: Name has already been taken

```

e parece que este é o problema:

```plaintext
  fab!(:the_group) { Fabricate(:group) }

```

Todos esses funcionaram até recentemente. Vi isso em outro plugin em que estava trabalhando e, acho, consegui definir um nome aleatório para mim, mas estes funcionaram, acredito, até ontem.

Algo mudou, ou fiz algo bobo por engano?

EDIT: Com a ajuda de Claude e do Discourse Helper Bot, tentei substituir o `fab` acima por

```plaintext
  Fabricator(:the_group) do
    name { sequence(:group_name) { |i| "Test Group #{i}" } }
  end

```

mas não consegui descobrir como fazer isso.

Então usei

```plaintext
  let(:the_group) { Fabricate(:group) }

```

em vez do `!fab` acima e isso reduziu o número de falhas de 12 para 1, mas ainda está falhando com

```plaintext
  1) Pfaffmanager::ServersController servers admin can get servers owned by a group
     Failure/Error: let(:the_group) { Fabricate(:group) }

     ActiveRecord::RecordInvalid:
       Validation failed: Name has already been taken

```

Não acho que nada em torno desses testes tenha mudado desde ontem às 10h30 CDT, quando fiz o último commit.

Reverti para um commit anterior e agora falha com

```plaintext

  1) Pfaffmanager::ServersController servers includes groups that the user is in
     Failure/Error: let(:the_group) { Fabricate(:group) }

     ActiveRecord::RecordInvalid:
       Validation failed: Name has already been taken

```

e executei novamente sem fazer nenhuma alteração e agora falha em

```plaintext

  1) Pfaffmanager::ServersController servers can update group id if group owner
     Failure/Error: let(:the_group) { Fabricate(:group) }

     ActiveRecord::RecordInvalid:
       Validation failed: Name has already been taken

```

Então parece que está falhando em um teste, e é aleatório?

---

_[View the full topic](https://meta.discourse.org/t/fabricators-generating-duplicate-names-because-of-aging-local-test-database/326197)._
