The other answers solve the original question, where you're searching by tag name. But best practice is to use some test id as an identifier instead:
<select data-testid="mySelect">
<option>A</option>
<option>B</option>
</select>
Since it may not be obvious to everyone, you can simply replace select with the identifier:
cy.get(`[data-testid="mySelect"] option`)
.should("have.length", 2)
.and("include.text", "A")
.and("include.text", "B")
Or you can find the select element first and then use cy.find to find the options within it:
cy.get(`[data-testid="mySelect"]`)
.find("option")
.should("have.length", 2)
.and("include.text", "A")
.and("include.text", "B")
(Note that I'm using "include.text" here, which only works if you know your options will be distinct. If you had a third option <option>AB</option> you'd want to use cy.each to cycle through each one individually or eq(n).should("have.text") to grab a specific option by index.)