A 'test' is one single 'it' block, as you stated. What it means is that you should be able to run any one single 'it' as an 'it.only' and still have it execute and pass, but it should also be able to run as a whole spec (*.cy.js) from start to finish and every test within it to pass.
A common error from upskilling new QA into automation is that they write a whole test spec with one test after the other, following on from the same state in the UI, as if they were doing each test manually one after the other. Cypress doesn't allow this (by default) and it goes against best-practice, thankfully Cypress default settings usually stops this happening as it resets browser cache and cookies etc. for each 'it' test block - avoiding falling into this same trap which happens easily in another tool like Selenium.