Tengo un problema similar al enlace , creo que en ese enlace los chicos están usando archivos mecanografiados. He definido selectores en los archivos js, traté de hacerlo de esta manera:
class Page { constructor(sampleText){ this.optionsButton = Selector('#options').withText(sampleText); } } export default new Page();pero cuando trato de llamar al selector desde el archivo de prueba
test('sampleTest', async t=> { await t.click(Page.optionsButton('sometext'); )}Recibí un error:
ERROR No se pueden preparar las pruebas debido al siguiente error: El argumento "texto" (indefinido) no es del tipo esperado (cadena o expresión regular).
¿Cómo resolver este problema?
optionsButton es una propiedad y su valor se define mediante el constructor, por lo que el parámetro solo se puede pasar en el momento en que crea el objeto de esta manera:
new Page('sometext');Sería mejor si escribes un método en la clase Page que devuelve el selector basado en un parámetro:
class Page { optionsButton(opt) { return Selector('#options').withText(opt); } } export default new Page();