Tests for next/previous block feature (#209)
This commit is contained in:
parent
69734471fd
commit
5cd35704ff
@ -1,12 +1,25 @@
|
|||||||
Feature: Blocks Page
|
Feature: Blocks Page
|
||||||
|
|
||||||
Scenario: Navigate to blocks page
|
Scenario: Navigate to blocks page
|
||||||
Given I am on the homepage
|
Given I am on the homepage
|
||||||
When I navigate to the blocks page
|
When I navigate to the blocks page
|
||||||
Then blocks page is correctly displayed
|
Then blocks page is correctly displayed
|
||||||
|
|
||||||
Scenario: Navigate to block validator page
|
Scenario: Navigate to block validator page
|
||||||
Given I am on the homepage
|
Given I am on the homepage
|
||||||
When I navigate to the blocks page
|
When I navigate to the blocks page
|
||||||
And I click on first block
|
And I click on top block
|
||||||
Then validator block page is correctly displayed
|
Then validator block page is correctly displayed
|
||||||
|
|
||||||
|
Scenario: Navigate to previous block
|
||||||
|
Given I am on the homepage
|
||||||
|
When I navigate to the blocks page
|
||||||
|
And I click on top block
|
||||||
|
Then I am on the previous block when I click previous
|
||||||
|
|
||||||
|
Scenario: Previous button disabled on first block
|
||||||
|
Given I am on the homepage
|
||||||
|
When I navigate to the blocks page
|
||||||
|
And jump to first block
|
||||||
|
Then previous button is disabled
|
||||||
|
And I am on the second block when I click next
|
||||||
|
@ -8,7 +8,12 @@ export default class BlocksPage extends BasePage {
|
|||||||
validatorLink = 'validator-link';
|
validatorLink = 'validator-link';
|
||||||
blockTime = 'block-time';
|
blockTime = 'block-time';
|
||||||
refreshBtn = 'refresh';
|
refreshBtn = 'refresh';
|
||||||
|
blockHeader = 'block-header';
|
||||||
minedByValidator = 'block-validator';
|
minedByValidator = 'block-validator';
|
||||||
|
previousBlockBtn = 'previous-block';
|
||||||
|
nextBlockBtn = 'next-block';
|
||||||
|
jumpToBlockInput = 'block-input';
|
||||||
|
jumpToBlockSubmit = 'go-submit';
|
||||||
|
|
||||||
validateBlocksPageDisplayed() {
|
validateBlocksPageDisplayed() {
|
||||||
cy.getByTestId(this.blockRow).should('have.length.above', 1);
|
cy.getByTestId(this.blockRow).should('have.length.above', 1);
|
||||||
@ -38,4 +43,55 @@ export default class BlocksPage extends BasePage {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
navigateToPreviousBlock() {
|
||||||
|
cy.getByTestId(this.blockHeader)
|
||||||
|
.invoke('text')
|
||||||
|
.then(($blockHeaderTxt) => {
|
||||||
|
const blockHeight = parseInt($blockHeaderTxt.replace('BLOCK ', ''));
|
||||||
|
this.clickPreviousBlock();
|
||||||
|
cy.getByTestId(this.blockHeader)
|
||||||
|
.invoke('text')
|
||||||
|
.then(($newBlockHeaderTxt) => {
|
||||||
|
const newBlockHeight = parseInt(
|
||||||
|
$newBlockHeaderTxt.replace('BLOCK ', '')
|
||||||
|
);
|
||||||
|
expect(newBlockHeight).to.be.lessThan(blockHeight);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
navigateToNextBlock() {
|
||||||
|
cy.getByTestId(this.blockHeader)
|
||||||
|
.invoke('text')
|
||||||
|
.then(($blockHeaderTxt) => {
|
||||||
|
const blockHeight = parseInt($blockHeaderTxt.replace('BLOCK ', ''));
|
||||||
|
this.clickNextBlock();
|
||||||
|
cy.getByTestId(this.blockHeader)
|
||||||
|
.invoke('text')
|
||||||
|
.then(($newBlockHeaderTxt) => {
|
||||||
|
const newBlockHeight = parseInt(
|
||||||
|
$newBlockHeaderTxt.replace('BLOCK ', '')
|
||||||
|
);
|
||||||
|
expect(newBlockHeight).to.be.greaterThan(blockHeight);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
clickPreviousBlock() {
|
||||||
|
cy.getByTestId(this.previousBlockBtn).click();
|
||||||
|
}
|
||||||
|
|
||||||
|
clickNextBlock() {
|
||||||
|
cy.getByTestId(this.nextBlockBtn).click();
|
||||||
|
}
|
||||||
|
|
||||||
|
jumpToBlock(blockNumber) {
|
||||||
|
cy.getByTestId(this.jumpToBlockInput).type(blockNumber);
|
||||||
|
cy.getByTestId(this.jumpToBlockSubmit).click();
|
||||||
|
}
|
||||||
|
|
||||||
|
verifyPreviousBtnDisabled() {
|
||||||
|
cy.getByTestId(this.previousBlockBtn).find('button').should('be.disabled');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,10 +7,14 @@ When('I navigate to the blocks page', () => {
|
|||||||
blocksPage.navigateToBlocks();
|
blocksPage.navigateToBlocks();
|
||||||
});
|
});
|
||||||
|
|
||||||
When('I click on first block', () => {
|
When('I click on top block', () => {
|
||||||
blocksPage.clickOnTopBlockHeight();
|
blocksPage.clickOnTopBlockHeight();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
When('jump to first block', () => {
|
||||||
|
blocksPage.jumpToBlock('1');
|
||||||
|
});
|
||||||
|
|
||||||
Then('blocks page is correctly displayed', () => {
|
Then('blocks page is correctly displayed', () => {
|
||||||
blocksPage.validateBlocksPageDisplayed();
|
blocksPage.validateBlocksPageDisplayed();
|
||||||
});
|
});
|
||||||
@ -18,3 +22,15 @@ Then('blocks page is correctly displayed', () => {
|
|||||||
Then('validator block page is correctly displayed', () => {
|
Then('validator block page is correctly displayed', () => {
|
||||||
blocksPage.validateBlockValidatorPage();
|
blocksPage.validateBlockValidatorPage();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Then('I am on the previous block when I click previous', () => {
|
||||||
|
blocksPage.navigateToPreviousBlock();
|
||||||
|
});
|
||||||
|
|
||||||
|
Then('previous button is disabled', () => {
|
||||||
|
blocksPage.verifyPreviousBtnDisabled();
|
||||||
|
});
|
||||||
|
|
||||||
|
Then('I am on the second block when I click next', () => {
|
||||||
|
blocksPage.navigateToNextBlock();
|
||||||
|
});
|
||||||
|
@ -29,13 +29,14 @@ export const JumpTo = ({
|
|||||||
</label>
|
</label>
|
||||||
<div className="flex">
|
<div className="flex">
|
||||||
<Input
|
<Input
|
||||||
|
data-testid={inputId}
|
||||||
id={inputId}
|
id={inputId}
|
||||||
type={inputType}
|
type={inputType}
|
||||||
name={inputName}
|
name={inputName}
|
||||||
placeholder={placeholder}
|
placeholder={placeholder}
|
||||||
className="max-w-[200px]"
|
className="max-w-[200px]"
|
||||||
/>
|
/>
|
||||||
<Button variant="secondary" type="submit">
|
<Button data-testid="go-submit" variant="secondary" type="submit">
|
||||||
{t('Go')}
|
{t('Go')}
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user