javascript - Har svårt att ha DayJs tillgängligt för alla tester i cypress
Jag startar för närvarande ett nytt Cypress-projekt, applikationen att testa är ganska "kalendercentrerad" och jag kommer att behöva leka mycket med datum.
Mitt problem är att jag inte kan få DayJs tillgängligt för hela projektet utan att behöva importera det i varje testfil.
Till exempel, i en test.spec.ts fungerar detta
import dayjs = require('dayjs');
describe('Some suite', () => {
it('Some Test', () => {
// some stuff
const myDate = dayjs('11-11-2022', 'dd-MM-YYYY' );
// other stuff
})
})
Men när jag gör detta i support/index.ts
import dayjs = require('dayjs')
declare namespace Cypress {
interface Cypress {
dayjs: dayjs.Dayjs;
}
}
och sedan detta i min specifikation
describe('Some suite', () => {
it('Some Test', () => {
// some stuff
const myDate = Cypress.dayjs('11-11-2022', 'dd-MM-YYYY' );
// other stuff
})
})
det står
Cypress.dayjs är inte en funktion
Några idéer på hur jag skulle kunna få detta att fungera? Tack för hjälpen
Svar #1
I /cypress/support/index.ts, lägg till dayjs till den globala Cypress (precis som momentjs brukade inkluderas).
/cypress/support/index.ts
const dayjs = require('dayjs')
declare namespace Cypress {
interface Cypress {
dayjs: dayjs.Dayjs;
}
}
Cypress.dayjs = dayjs
Nu const myDate=Cypress.dayjs('11-11-2022', 'dd-MM-YYYY') borde fungera.
