Seed ou chamadas de API para criar usuários de teste

Em meu desenvolvimento e testes, estou executando uma instância do Discourse (Docker Discourse da Bitnami), que atende à maioria das minhas necessidades de teste de API para nosso serviço de API que se comunica com o Discourse. No entanto, agora preciso testar a pesquisa usando /u/search/users.json?term=and e gostaria de popular alguns usuários neste serviço local de teste do Discourse. Por padrão, ele possui apenas um usuário com o nome “user”.

A documentação da API não parece explicar chamadas de API para fazer isso, o que seria fácil. Há algo que estou perdendo onde posso simplesmente criar vários usuários para testar isso?

Vale ressaltar que já criei solicitações manuais para nosso serviço pago ao vivo do Discourse, e isso funciona, mas gostaria de testar em nossa instância de desenvolvimento/teste e, para isso, preciso de mais usuários de teste.

Obrigado.

O Bitnami permite acessar a linha de comando da pasta de configuração do Discourse?

Se sim, confira isso:

Obrigado, @fzngagan. Infelizmente, o Bitnami Discourse não tem o Launcher instalado. O que exatamente enter app faz? Achei que poderia apenas executar bundle exec rake admin:create, mas isso retorna…

rake aborted!
LoadError: cannot load such file -- byebug
/opt/bitnami/discourse/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:82:in `require'
/opt/bitnami/discourse/config/application.rb:37:in `<top (required)>'
/opt/bitnami/discourse/Rakefile:5:in `require'
/opt/bitnami/discourse/Rakefile:5:in `<top (required)>'
/opt/bitnami/discourse/vendor/bundle/ruby/2.5.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
/opt/bitnami/ruby/bin/bundle:23:in `load'
/opt/bitnami/ruby/bin/bundle:23:in `<main>'
(See full trace by running task with --trace)

Isso parecia promissor, mas estou de volta ao zero. :frowning:

Você poderia usar a instalação oficial suportada do Discourse?

Temos vários serviços necessários em nosso ambiente de desenvolvimento e preferimos iniciar tudo (junto com o Discourse e todos os seus módulos), bem como definir/controlar a rede entre todos os serviços com um único comando docker-compose up, além de desligar tudo novamente com down. Isso evita o passo adicional de adicionar o launcher a uma nova instalação do nosso desenvolvimento.

OK, resolvido. Para quem está usando uma instalação do Discourse via bitnami com docker-compose (Docker) para desenvolvimento, aqui estão os passos que segui (com base nas orientações apontadas por @fzngagan):

> docker exec -it <nome_do_seu_container> /bin/bash

Dentro do container…

> export RAILS_ENV=production

Não tenho certeza qual será o impacto disso no registro de logs. Talvez devesse ter tentado =dev ou development… então, algo para vocês relatarem, mas estou com pressa, desculpem

> bundle exec rake admin:create

Responda às perguntas; a senha deve seguir as regras do Discourse, caso contrário o script recomeça do início

Nota: Não é necessário usar o ./Launcher, conforme mencionado no link citado por @fzngagan acima.

É uma pena que isso não esteja disponível via API se o Discourse estiver configurado como ambiente Dev ou Test, pois isso simplificaria muito os testes e o desenvolvimento de serviços de API que desejam utilizá-lo. No entanto, por enquanto, vou me contentar com a linha de comando na instância do Docker.

Observação adicional: > export RAILS_ENV=production (definindo para production) parece não ter impacto nas informações de log do Discourse. No entanto, eu não parei/iniciei meu docker-compose após essa alteração, então pode ser necessário excluir a variável de ambiente ou defini-la como development, dev ou algo assim.