Este documento detalha o funcionamento do Gemini Gold Flow para a automação de testes E2E no conector Adyen, com foco no isolamento de ambientes (workspaces) e suporte automático a fluxos de 3DS.
1. Visão Geral do Fluxo
O pipeline do conector dispara gatilhos para o repositório qa-tests em três momentos distintos, enviando variáveis que definem o ambiente e o escopo dos testes.
| Origem (Branch/Evento) | Workspace VTEX | Escopo E2E (E2E_SCOPE) | Objetivo |
|---|---|---|---|
| Merge Request | Dinâmica (Slug) | smoke | Validar a tarefa isolada. |
Branch homolog | homolog | smoke | Validar integração na homologação. |
Branch release-candidate/* | release | full | Regressão completa pré-produção. |
2. Automação do VTEX Admin (Afiliação)
Para que o redirecionamento de 3DS e as notificações de webhook funcionem corretamente nas workspaces efêmeras, o projeto de QA deve atualizar o campo "Workspace" da afiliação Adyen via API antes de iniciar os testes do Playwright.
Dados da API VTEX
- Endpoint:
PUT https://{{account}}.vtexpayments.com.br/api/payments/pvt/affiliations/{{affiliation_id}} - Autenticação: Requer
X-VTEX-API-AppKeyeX-VTEX-API-AppToken. - Ação: O script deve ler a configuração atual, substituir o valor do campo
workspacepelo valor recebido na variávelVTEX_WORKSPACEe enviar o objeto completo de volta.
Exemplo de Lógica (TypeScript)
_14// No repositório qa-tests (globalSetup ou Job de Setup)_14const updateWorkspace = async (newWorkspace: string) => {_14 const url = `https://$\{process.env.VTEX_ACCOUNT\}.vtexpayments.com.br/api/payments/pvt/affiliations/$\{process.env.ADYEN_AFFILIATION_ID\}`;_14 _14 // 1. Get current config_14 const { data: config } = await axios.get(url, { headers });_14 _14 // 2. Patch workspace_14 config.workspace = newWorkspace;_14 _14 // 3. Update Admin_14 await axios.put(url, config, { headers });_14 console.log(`Ambiente configurado para a workspace: $\{newWorkspace\}`);_14};
3. Gestão de Concorrência
Para evitar que dois testes simultâneos tentem configurar a mesma conta de QA com workspaces diferentes, o job de trigger no conector utiliza a funcionalidade resource_group.
- Resource Group:
adyen-qa-account - Comportamento: Se um MR já estiver rodando testes contra a conta de QA, o próximo MR ficará em fila (status Waiting) até que o anterior seja concluído.
4. Configuração Adyen (Customer Area)
Para que as múltiplas workspaces sejam aceitas pela Adyen, a credencial de API no painel da Adyen deve estar configurada com Wildcards na seção Allowed Origins:
- URLs Permitidas:
https://*.myvtex.comehttps://*--adyenpartnerglobalqa7.myvtex.com.
5. Variáveis de Ambiente Necessárias no QA-Tests
O time de QA deve cadastrar os seguintes segredos no GitLab do projeto qa-tests:
VTEX_APP_KEY: Chave de API da conta de QA.VTEX_APP_TOKEN: Token de API da conta de QA.ADYEN_AFFILIATION_ID: ID da afiliação Adyen no Admin (ex:12345).
Status da Implementação:
- Configuração de Gatilhos (Conector)
- Separação de Workspaces (Conector)
- Script de Update de Workspace (QA-Tests)
- Filtro por E2E_SCOPE (QA-Tests)