# Configurando ambientes de teste do VEX
## Ambiente Web
### **Ferramentas Necessárias**
1. Instalar programas necessários
Abaixo são listados as ferramentas necessáriss para executar os testes automatizados:
[Android Studio](https://developer.android.com/studio)
[Git](https://git-scm.com/downloads)
[VSCode](https://code.visualstudio.com/)
[Node.js](https://nodejs.org/en/) <font size="2">(v6.14.13 - Versão corrente)</font>
[Angular](https://angular.io/) <font size="2">(v12.x.x - Versão corrente)</font>
[Protactor](http://www.protractortest.org/) <font size="2">(v7.x.x - Versão corrente)</font>
### **Configurando Chave SSH**
> <font size="2">Utilizando Linux ou Git Bash (no windows)</font>
Execute o comando `ssh-keygen` e confirme todas as questões.
Após esse passo, dois arquivos de chaves criptografadas serão criados em uma pasta chamada `.ssh`, que ficará na pasta home do usuário no SO corrente, no linux ela ficará no caminho
`/home/$USER/.ssh`.
No windows o caminho é
`C:\Users\SEU_USER\.ssh`.
Siga até a pasta e copie o conteúdo do arquivo `id_rsa.pub`, siga para as preferência de perfil no gitlab, na sessão **Chaves SSD** (ou clique [aqui](https://gitlab.com/-/profile/keys)) e cole o conetúdo copiado no campo necessário, adicione um título à chave, defina uma data de expiração à mesma e adicione a mesma.
Ao fim desse processo, será possível clonar repositórios do gitlab sem a necessidade de preencher as credenciais.
### **Clonando repositório**
1. Executar um dos comandos
Com **ssh:**
```shell
$ git clone git@gitlab.com:viggoor/vex/vex-frontend-web.git
```
Com **http:**
```shell
$ git clone https://gitlab.com/viggoor/vex/vex-frontend-web.git
```
2. Executar comando `npm install`
3. Criar arquivo `.npmrc` na raiz do projeto com o conteúdo a seguir:
```text
@0RT1:registry=https://gitlab.com/api/v4/packages/npm/
//gitlab.com/api/v4/packages/npm/:_authToken=gcfWyysUMtWxYcjp-1UR
//gitlab.com/api/v4/projects/16331489/packages/npm/:_authToken=gcfWyysUMtWxYcjp-1UR
//gitlab.com/api/v4/projects/27178462/packages/npm/:_authToken=zvAtZKKc4vU-9nubxyCa
```
### **Instalar Angular, Protractor e atualizar web driver com os comandos**
Angular
```shell
$ npm install -g @angular/cli
```
Protractor
```shell
$ npm -g install protractor
```
```shell
$ webdriver-manager update
```
### **Executando testes**
##### Usar o comando abaixo pra rodar os testes
```shell
$ protractor e2e/conf/fit.conf.js --suite <teste>
```
##### **Testes disponíveis**
login, rota, produto, unidade, grupo, forma_pagamento,
informacao_empresa, usuario, cliente, fornecedor, vendedor,
perfil, tabela_preco, condicao_pagamento, entrada, pedido, saida.
##### **Exemplo**
```shell
$ protractor e2e/conf/fit.conf.js --suite login
```
##### **Rodando multiplos testes**
```shell
$ protractor e2e/conf/fit.conf.js --suite <teste1> <teste2> ... <testeN>
```
##### **Exemplo**
```shell
$ protractor e2e/conf/fit.conf.js --suite login rota entrada
```
## Ambiente Mobile
### **Clonando repositório**
1. Executar um dos comandos
Com **ssh:**
```shell
$ git@gitlab.com:viggoor/vex/vex-frontend-android.git
```
Com **http:**
```shell
$ https://gitlab.com/viggoor/vex/vex-frontend-android.git
```
### **Baixando infosystem-core-android e infosystem-security-android**
#### Infosystem Core Android
Com **ssh:**
```shell
$ git@gitlab.com:orinfosystem/infosystem-frontend-android/infosystem-core-android.git
```
Com **http:**
```shell
$ https://gitlab.com/orinfosystem/infosystem-frontend-android/infosystem-core-android.git
```
#### Infosystem Security Android
Com **ssh:**
```shell
$ git@gitlab.com:orinfosystem/infosystem-frontend-android/infosystem-security-android.git
```
Com **http:**
```shell
$ https://gitlab.com/orinfosystem/infosystem-frontend-android/infosystem-security-android.git
```
Salve o caminho onde esses dois repositórios foram clonados, eles serão necessário no próximo passo.
### **Configurando o gradle**
Ao instalar o Android Studio, é criado uma pasta chamada `.gradle`
No linux ela ficará no caminho
`/home/$USER/.gradle`.
No windows o caminho é
`C:\Users\SEU_USER\.gradle`.
Dentro dessa pasta crie um arquivo chamado `gradle.properties` com o conteúdo a seguir
```properties
infosystemCorePath=<caminho\\ate\\infosystem-core-android>
infosystemSecurityPath=<caminho\\ate\\infosystem-security-android>
```
<font size="2"><strong>Obs.:</strong> No windows usa-se \ \ para especificar o caminho de pastas.</font>
### **Configurando keystore-prod.properties**
Dentro dos projetos existe um arquivo chamado `keystore.properties`, duplique-o e renomeie como `keystore-prod.properties`. Esse arquivo é necessário para o funcionamento do projeto, porém é crítico e não pode ir para o reposítório.
### **Executando testes**
##### **Pasta de testes**
```shell
src/androidTest/java/br/com/objetorelacional/orpec/android/tests/ActivityTestSuite.kt
```
##### **Executando testes**
<font size="2">No Android Studio.</font>
No arquivo `ActivityTestSuite.kt` na linha que conta o trecho `class ActivityTestSuite` existe um ícone a esquerda, clica-se nele e escolhe a opção **`Run ActivityTestSuite`**.