5
import {StudentDetails} from "../Department"

let studentInfo = new StudentDetails();
let studName: any = '';

it('Get Student Name', function(){
    studentInfo.getStudName();
    studName = studentInfo.getStudName();
    cy.log(studName);
})

Department file:

export class StudentDetails{
getStudName(){
cy.get('app-screen').find('input[id="studentName"]').invoke('val').as('name')
cy.get('@name').then((name) => {
  cy.log('Student Name: ' + name)
  return name
})
}

The above script doesn't return the student name. Instead it showing the below error. Could someone please help to sort this issue out?

cy.then() failed because you are mixing up async and sync code. In your callback function you invoked 1 or more cy commands but then returned a synchronous value.

Cypress commands are asynchronous and it doesn't make sense to queue cy commands and yet return a synchronous value.

You likely forgot to properly chain the cy commands using another cy.then().

0

1 Answer 1

6

As it says you can't just return a value from this in a synchronous way. You should be returning the whole chain and use then in the test itself.

getStudName(){
 return cy.get('appscreen').find('input[id="studentName"]').invoke('val')
}
it('Get Student Name', function(){
  studentInfo.getStudName().then((name) => {
    cy.log('Student Name: ' + name)
  })
})
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.