58 lines
1.7 KiB
TypeScript
58 lines
1.7 KiB
TypeScript
import { log } from "./logger.js";
|
|
import { delay } from "../screen-objects/base.screen.js";
|
|
|
|
export function seedPhrase() {
|
|
const phrase: string[] = [];
|
|
|
|
const seedPhraseWordText = async (wordNumber: number) => {
|
|
return $(`[data-testid="word-index-${wordNumber.toString()}"]`);
|
|
};
|
|
|
|
const save = async (phraseLength= 18) => {
|
|
for (let i = 1; i <= phraseLength; i++) {
|
|
const wordValue = await (await seedPhraseWordText(i)).getText();
|
|
log.info(`Word number ${i}: ${wordValue}`);
|
|
phrase.push(wordValue);
|
|
}
|
|
return phrase;
|
|
};
|
|
|
|
const emptyWordLocator = async (index: number) => {
|
|
return $(`[data-testid=empty-word-${index + 1}]`);
|
|
};
|
|
|
|
const getWordValue = async (index: number) => {
|
|
const wordValueLocator = await $(
|
|
`[data-testid="matching-seed-phrase-container"] [data-testid="word-index-${
|
|
index + 1
|
|
}"]`
|
|
);
|
|
await wordValueLocator.waitForClickable();
|
|
return await wordValueLocator.getText();
|
|
};
|
|
|
|
const select = async (seedPhrase: string[]) => {
|
|
await delay(100);
|
|
for (let i = 0; i < seedPhrase.length; i++) {
|
|
let wordValue: string;
|
|
const locator = await $(
|
|
"[data-testid=\"original-seed-phrase-container\"]"
|
|
).$(`span=${seedPhrase[i]}`);
|
|
|
|
await expect(locator).toBeDisplayed();
|
|
await expect(await emptyWordLocator(i)).toBeDisplayed();
|
|
do {
|
|
await locator.waitForClickable({ timeout: 3000 });
|
|
await locator.click();
|
|
wordValue = await getWordValue(i);
|
|
} while (wordValue !== seedPhrase[i]);
|
|
await (await emptyWordLocator(i)).waitForDisplayed({ reverse: true });
|
|
}
|
|
};
|
|
|
|
return {
|
|
save,
|
|
select,
|
|
};
|
|
}
|