2
0
mirror of https://github.com/frappe/books.git synced 2024-12-22 10:58:59 +00:00

test(ui): test instance setup

- fix auto complete choice on blur
- fix button disabled
This commit is contained in:
18alantom 2023-06-27 13:00:17 +05:30
parent badae87edb
commit 64671e5625
6 changed files with 46 additions and 7 deletions

1
.gitignore vendored
View File

@ -1,5 +1,6 @@
.DS_Store
node_modules
/dbs
/dist
/notebook

View File

@ -1,6 +1,7 @@
<template>
<button
class="rounded-md flex justify-center items-center text-sm"
:disabled="disabled"
:class="_class"
v-bind="$attrs"
>

View File

@ -262,15 +262,15 @@ export default {
return;
}
if (label && this.suggestions.length === 0) {
if (this.suggestions.length === 0) {
this.triggerChange(label);
return;
}
if (
label &&
!this.suggestions.map(({ label }) => label).includes(label)
) {
const suggestion = this.suggestions.find((s) => s.label === label);
if (suggestion) {
this.setSuggestion(suggestion);
} else {
const suggestions = await this.getSuggestions(label);
this.setSuggestion(suggestions[0]);
}

View File

@ -14,6 +14,7 @@
"
>
<h6
data-testid="company-name"
class="
font-semibold
whitespace-nowrap

View File

@ -60,6 +60,7 @@
<Button
type="primary"
class="w-24"
data-testid="submit-button"
:disabled="!areAllValuesFilled || loading"
@click="submit"
>{{ t`Submit` }}</Button

View File

@ -10,6 +10,7 @@ const appSourcePath = path.join(root, 'dist_electron', 'build', 'main.js');
(async function run() {
const electronApp = await _electron.launch({ args: [appSourcePath] });
const window = await electronApp.firstWindow();
window.setDefaultTimeout(10_000);
test('load app', async (t) => {
t.equal(await window.title(), 'Frappe Books', 'title matches');
@ -42,9 +43,43 @@ const appSourcePath = path.join(root, 'dist_electron', 'build', 'main.js');
t.ok(await createNew.isVisible(), 'create new is visible');
});
test('fill setup form', async (t) => {
const filePath = path.join(root, 'dbs', 'books_uitest.db');
await electronApp.evaluate(({ dialog }, filePath) => {
dialog.showSaveDialog = () =>
Promise.resolve({ canceled: false, filePath });
}, filePath);
await window.getByTestId('create-new-file').click();
await window.getByTestId('submit-button').waitFor();
t.equal(
await window.getByTestId('submit-button').isDisabled(),
true,
'submit button is disabled before form fill'
);
await window.getByPlaceholder('Company Name').fill('Test Company');
await window.getByPlaceholder('John Doe').fill('Test Owner');
await window.getByPlaceholder('john@doe.com').fill('test@example.com');
await window.getByPlaceholder('Select Country').fill('India');
await window.getByPlaceholder('Select Country').blur();
await window.getByPlaceholder('Prime Bank').fill('Test Bank');
await window.getByPlaceholder('Prime Bank').blur();
t.equal(
await window.getByTestId('submit-button').isDisabled(),
false,
'submit button enabled after form fill'
);
});
test('create new instance', async (t) => {
// await window.getByTestId('create-new-file').click();
t.ok(true, '...');
await window.getByTestId('submit-button').click();
t.equal(
await window.getByTestId('company-name').innerText(),
'Test Company',
'new instance created, company name found in sidebar'
);
});
test('close app', async (t) => {