Prerequisite
Kahraman ve kötü adam bileşen grupları boyunca kullanılacak olan yeni arayüzler ve türler oluşturun.
// src/models/Boy.ts
export interface Boy {
id: string;
name: string;
description: string;
}
/* istanbul ignore file */// src/models/types.ts
import { Hero } from "./Hero";
import { Villain } from "./Villain";
import { Boy } from "./Boy";
export type HeroProperty = Hero["name"] | Hero["description"] | Hero["id"];
export type VillainProperty =
| Villain["name"]
| Villain["description"]
| Villain["id"];
export type BoyProperty = Boy["name"] | Boy["description"] | Boy["id"];
export type EntityRoute = "heroes" | "villains" | "boys";
export type EntityType = "hero" | "villain" | "boy";
/** Returns the corresponding route for the entity;
*
* `hero` -> `/heroes`, `villain` -> `/villains`, `boy` -> `/boys` */
export const entityRoute = (entityType: EntityType) =>
entityType === "hero"
? "heroes"
: entityType === "villain"
? "villains"
: "boys";
/* istanbul ignore file */api.ts'yi kendi klasörüne taşıyın
api.ts'yi kendi klasörüne taşıyın./src/hooks/api.ts adresinden ./src/api/api.ts adresine. IDE'niz bağımlılıkları otomatik olarak güncellemelidir.
Hook'ları güncelleyin
useDeleteEntity, Boy için güncellenir.
useGetEntities yalnızca yorumun güncellenmesi gereklidir
/heroesveya/villainsyollarına GET için yardımcı/heroes,/villainsveya/boysyollarına GET için yardımcı.
usePostEntity Boy için güncellenir.
usePutEntity Boys için güncellenir.
E2E komutlarını değiştirin
./cypress/support altındaki 3 dosya arasında, alakalılık lehine içe aktarmaları bölmek mümkündür
commands.ts: tüm eklenti içe aktarmaları ve e2e & CT ile ortak komutlar (ör:cy.getByCY).component.ts: bileşen testlerine özgü komutlar (ör:cy.mount,cy.wrappedMount).e2e.ts: e2e'ye özgü komutlar (ör:cy.crud).
component.tsx ve e2e.ts, CT ve e2e dosyalarının ortak komutlara ve eklentilere erişimi olması için commands.ts'yi içe aktaracaktır.
Repo kökündeki tip tanımlarını güncelleyin.
Kahramanların boys aynasını oluşturun
./db.json'i güncelleyin
./db.json'i güncelleyinboys grubunu ekleyin.
Veritabanı durumunu doğru şekilde sıfırlayabilmemiz için bunu ./cypress/fixtures/db.json'a yansıtın.
./cypress/fixtures/boys.json eklentisini ekleyin.
./cypress/fixtures/boys.json eklentisini ekleyin.Bileşenleri yansıtın
Kahramanlar grubunun olduğu gibi boys için 3 bileşen oluşturuyoruz. Ayrıca bazı temel bileşenleri güncellememiz gerekiyor.
ListHeader için yalnızca title için tip değişir.
Diğerleri aynalardır. ./src/boys/ altında bir klasör ve onun altında 3 ayna dosyası oluşturun.
Boys rotasını App.tsx'e ekleyin.
Boys'u NavBar bileşenine ekleyin.
E2E testlerinin aynasını oluşturun
Kahraman sürümlerinin boys aynaları olan 3 yeni e2e testi oluşturuyoruz.
Arka uç testi, kötü adamları kapsayacak yeni bir bloğa ihtiyaç duyar.
routes-nav, kötü adamlar rotasını kapsayacak yeni bir teste ihtiyaç duyar.
Cypress bileşen testlerini yansıtın
Öncelikle, Navbar ve App testlerini güncelleyin. Navbar.cy için, routes dizisine boys eklememiz yeterlidir.
App.cy için, boys rotasını engellememiz ve boys için bir kontrol eklememiz gerekmektedir.
boys altındaki 3 bileşen için 3 yeni bileşen testine ihtiyacımız var.
RTL testlerini yansıtın
Cy CT ile yapılanın aynısını RTL'ye uygulamamız yeterlidir.
App.test için bir msw işleyici ve yeni bir rota kontrolüne ihtiyaç duyar.
Navbar.test için routes değişkeninin aynı güncellemeye, yani Boys eklemeye ihtiyaç duyar.
Last updated