mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2025-11-15 17:21:35 +10:00
Dashboard page: unit tests refactoring
This commit is contained in:
@ -50,7 +50,7 @@ class Auth {
|
|||||||
|
|
||||||
this.onAuthStateChangedObservers.forEach((observer) => observer(user));
|
this.onAuthStateChangedObservers.forEach((observer) => observer(user));
|
||||||
|
|
||||||
return Promise.resolve(user);
|
return user;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -185,7 +185,7 @@ class Reference {
|
|||||||
|
|
||||||
await delay(DatabaseConstants.defaultDelayInMilliseconds);
|
await delay(DatabaseConstants.defaultDelayInMilliseconds);
|
||||||
|
|
||||||
return Promise.resolve(this._dataSnapshot);
|
return this._dataSnapshot;
|
||||||
}
|
}
|
||||||
|
|
||||||
orderByChild(path) {
|
orderByChild(path) {
|
||||||
@ -197,24 +197,18 @@ class Reference {
|
|||||||
await delay(DatabaseConstants.defaultDelayInMilliseconds);
|
await delay(DatabaseConstants.defaultDelayInMilliseconds);
|
||||||
|
|
||||||
this._handleDataUpdate(value);
|
this._handleDataUpdate(value);
|
||||||
|
|
||||||
return Promise.resolve();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async remove() {
|
async remove() {
|
||||||
await delay(DatabaseConstants.defaultDelayInMilliseconds);
|
await delay(DatabaseConstants.defaultDelayInMilliseconds);
|
||||||
|
|
||||||
this._handleDataUpdate(null);
|
this._handleDataUpdate(null);
|
||||||
|
|
||||||
return Promise.resolve();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async set(value) {
|
async set(value) {
|
||||||
await delay(DatabaseConstants.defaultDelayInMilliseconds);
|
await delay(DatabaseConstants.defaultDelayInMilliseconds);
|
||||||
|
|
||||||
this._handleDataUpdate(value);
|
this._handleDataUpdate(value);
|
||||||
|
|
||||||
return Promise.resolve();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -29,13 +29,13 @@ describe('Dashboard', () => {
|
|||||||
let userResumes = null;
|
let userResumes = null;
|
||||||
const user = DatabaseConstants.user1;
|
const user = DatabaseConstants.user1;
|
||||||
|
|
||||||
const waitForResumeToBeRenderedInPreview = async (resume) => {
|
const waitForResumeToBeRenderedInPreview = async (resumeName) => {
|
||||||
await screen.findByText(resume.name);
|
await screen.findByText(resumeName);
|
||||||
};
|
};
|
||||||
|
|
||||||
const expectResumeToBeRenderedInPreview = async (resume) => {
|
const expectResumeToBeRenderedInPreview = async (resumeName) => {
|
||||||
await waitFor(() => {
|
await waitFor(() => {
|
||||||
expect(screen.getByText(resume.name)).toBeInTheDocument();
|
expect(screen.getByText(resumeName)).toBeInTheDocument();
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -92,13 +92,22 @@ describe('Dashboard', () => {
|
|||||||
await waitFor(() => {
|
await waitFor(() => {
|
||||||
expect(screen.getByText(/create resume/i)).toBeInTheDocument();
|
expect(screen.getByText(/create resume/i)).toBeInTheDocument();
|
||||||
});
|
});
|
||||||
|
await waitFor(() => {
|
||||||
|
expect(
|
||||||
|
screen.getByTestId(createResumeButtonDataTestId),
|
||||||
|
).toBeInTheDocument();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('preview of user resumes', async () => {
|
it('preview of user resumes', async () => {
|
||||||
expect(Object.keys(userResumes)).toHaveLength(2);
|
expect(Object.keys(userResumes)).toHaveLength(2);
|
||||||
|
|
||||||
await expectResumeToBeRenderedInPreview(Object.values(userResumes)[0]);
|
await expectResumeToBeRenderedInPreview(
|
||||||
await expectResumeToBeRenderedInPreview(Object.values(userResumes)[1]);
|
Object.values(userResumes)[0].name,
|
||||||
|
);
|
||||||
|
await expectResumeToBeRenderedInPreview(
|
||||||
|
Object.values(userResumes)[1].name,
|
||||||
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -187,7 +196,7 @@ describe('Dashboard', () => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
await waitForModalWindowToHaveBeenClosed();
|
await waitForModalWindowToHaveBeenClosed();
|
||||||
await waitForResumeToBeRenderedInPreview({ name: resumeName });
|
await waitForResumeToBeRenderedInPreview(resumeName);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('closes modal window', async () => {
|
it('closes modal window', async () => {
|
||||||
@ -195,19 +204,22 @@ describe('Dashboard', () => {
|
|||||||
expect(screen.queryByRole('textbox', { name: /name/i })).toBeNull(),
|
expect(screen.queryByRole('textbox', { name: /name/i })).toBeNull(),
|
||||||
);
|
);
|
||||||
|
|
||||||
await waitForResumeToBeRenderedInPreview({ name: resumeName });
|
await waitForResumeToBeRenderedInPreview(resumeName);
|
||||||
});
|
});
|
||||||
|
|
||||||
// eslint-disable-next-line jest/expect-expect
|
|
||||||
it('renders created resume in preview', async () => {
|
it('renders created resume in preview', async () => {
|
||||||
await waitForModalWindowToHaveBeenClosed();
|
await waitForModalWindowToHaveBeenClosed();
|
||||||
|
|
||||||
await expectResumeToBeRenderedInPreview({ name: resumeName });
|
await waitFor(() =>
|
||||||
|
expect(
|
||||||
|
expectResumeToBeRenderedInPreview(resumeName),
|
||||||
|
).resolves.toBeUndefined(),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('adds resume in initial state to database', async () => {
|
it('adds resume in initial state to database', async () => {
|
||||||
await waitForModalWindowToHaveBeenClosed();
|
await waitForModalWindowToHaveBeenClosed();
|
||||||
await waitForResumeToBeRenderedInPreview({ name: resumeName });
|
await waitForResumeToBeRenderedInPreview(resumeName);
|
||||||
|
|
||||||
const actualUserResumes = (
|
const actualUserResumes = (
|
||||||
await FirebaseStub.database()
|
await FirebaseStub.database()
|
||||||
@ -286,7 +298,7 @@ describe('Dashboard', () => {
|
|||||||
await waitFor(() =>
|
await waitFor(() =>
|
||||||
expect(screen.queryByText(resumeToDelete.name)).toBeNull(),
|
expect(screen.queryByText(resumeToDelete.name)).toBeNull(),
|
||||||
);
|
);
|
||||||
await expectResumeToBeRenderedInPreview(undeletedResume);
|
await expectResumeToBeRenderedInPreview(undeletedResume.name);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('displays notification', async () => {
|
it('displays notification', async () => {
|
||||||
@ -322,8 +334,12 @@ describe('Dashboard', () => {
|
|||||||
screen.getByTestId(loadingScreenTestId),
|
screen.getByTestId(loadingScreenTestId),
|
||||||
);
|
);
|
||||||
|
|
||||||
await waitForResumeToBeRenderedInPreview(Object.values(userResumes)[0]);
|
await waitForResumeToBeRenderedInPreview(
|
||||||
await waitForResumeToBeRenderedInPreview(Object.values(userResumes)[1]);
|
Object.values(userResumes)[0].name,
|
||||||
|
);
|
||||||
|
await waitForResumeToBeRenderedInPreview(
|
||||||
|
Object.values(userResumes)[1].name,
|
||||||
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user