# Feature: Add Database As a Reseller's Customer I want to add a database To store data for a specific application ### Rules: - The reseller's customer can create databases - The user and account name must be presented when creating the database - The database is added asynchronously - **Prerequisite**: You must have an account and an added site - Required fields: "Account," "Site," "Database Name," and "Password" - The first database instance takes up the most storage space in the package (about 200MB) - A 0.5 GB storage package can hold 10 databases - Database names in use cannot be duplicated - Database name cannot contain the words "test" or "teste" - There is no predefined time for the status to change from "activating" to "active" - To view the status update, you must manually reload the page - It should be possible to use a previously deleted database name - It is not possible to select a site using a package that has reached its database limit - It is allowed to use reserved words as database names, such as 'column', 'create', 'create_index', 'dbselect', 'io_after_gtids', 'json_table', 'old_table', 'select', 'updates', 'virtual'. ### Scenario: With all valid data - **Given** that I provide all valid data - **When** adding a database - **Then** it shows the message "Banco de dados adicionado com sucesso." - And it shows the database in the listing ### Scenario: Providing a name in use - **Given** that I provide a name in use "reservabancoqa" - **When** adding a database - **Then** it shows the message "Erro ao adicionar o banco de dados!" - And it shows a warning "O nome do banco de dados já está em uso" - And it does not allow adding the database ### Scenario Outline: Providing an invalid name - **Given** that I provide the invalid name "<name>" - **Then** it shows a warning "<warning>" - And it does not allow adding the database #### Examples: | name | warning | | \n | O preenchimento é obrigatório. | | a_ | O campo deve conter no mínimo 3 caracteres. | | 0ab_ | O prefixo deve iniciar com letras | | a0b | O prefixo do banco deve finalizar com: "_" | | a.b_ | O prefixo deve conter apenas letras, números ou carácter "_" | ### Scenario Outline: Providing an invalid password - **Given** that I provide the invalid password "<password>" - **Then** it shows a warning "<warning>" - And it does not allow adding the database #### Examples: | password | warning | | \n | O preenchimento é obrigatório. | | inicial | A senha não atinge os requisitos mínimos de segurança. | | @@@Inicial1234 | A senha deve iniciar com uma letra. | ### Scenario: Site linked to a deactivated plan - **Given** that the site's plan is deactivated - **When** adding a database - **Then** it is not possible to select the site ### Scenario: Package limit reached - **Given** that the site package has no available quantity - **When** creating the database and selecting the site - **Then** it does not allow site selection - And it shows a warning "Limite atingido"