US_1050 - pedrocastrosousa/sem5pi-23-24-grupo59 GitHub Wiki

1050 - Como gestor de Campus pretendo criar um Edifício

1. Contexto

A US vai permitir a criação de um Edifício apartir do módulo de frontend.

2. Requisitos

AC1 - Criação de uma UI que permita ao ator introduzir os dados de um Edifício

AC2 - Ser uma funcionalidade do Menu Gestor de Campus

AC3 - Estabelecer comunicação com o backend

AC4 - Criação e persistência do Edifício criado na BD

2. Análise

Ator - Gestor de Campus

Pré-condições

  • Existência da implementação do módulo de backend

Pós-condições

  • O Edifício será presistido

Cenário Principal

  1. É inserida a informação sobre o Edifício (Código, Descrição, Nome, Comprimento e Largura)
  2. O sistema informa do sucesso ou insucesso da operação

Questões relevantes ao cliente

N/A

3. Design

3.1 Vista de Processos

Nível 1

VP

Nível 2

VP

Nível 3

VP

3.2. Testes

Exemplo:

    it('Criar edificio com sucesso', () => {
    cy.visit('/criar-edificio');
    cy.get('[name="codigoEdificio"]').type('test1');
    cy.get('[name="descricaoEdificio"]').type('descricao');
    cy.get('[name="nomeEdificio"]').type('nome');
    cy.get('[name="comprimento"]').type('1');
    cy.get('[name="largura"]').type('2');
    cy.contains('button', 'Criar')
      .should('not.be.disabled')
      .click();
    cy.wait('@createEdificio').then(interception => {
      expect(interception?.response?.statusCode).to.eq(201);
    });
  });

4. Implementação

Exemplo:

  export class CriarEdificioComponent implements OnInit {
  constructor(private edificioService: EdificioService) {}

  codigoEdificio: string = '';
  descricaoEdificio: string = '';
  nomeEdificio: string = '';
  comprimento: number = 0;
  largura: number = 0;

  ngOnInit(): void {}

  createEdificio(): void {
    this.edificioService
      .createEdificio(this.codigoEdificio, this.descricaoEdificio, this.nomeEdificio, this.comprimento, this.largura)
      .subscribe(response => {
        console.log(response);
      });
  }
}

5. Observations

N/A

⚠️ **GitHub.com Fallback** ⚠️