diff --git a/src/__tests__/test-components/GitPanel.spec.tsx b/src/__tests__/test-components/GitPanel.spec.tsx index 05dbd1b3c..4d264a5fa 100644 --- a/src/__tests__/test-components/GitPanel.spec.tsx +++ b/src/__tests__/test-components/GitPanel.spec.tsx @@ -2,7 +2,7 @@ import * as apputils from '@jupyterlab/apputils'; import { nullTranslator } from '@jupyterlab/translation'; import { JSONObject } from '@lumino/coreutils'; import '@testing-library/jest-dom'; -import { render, screen, waitFor } from '@testing-library/react'; +import { RenderResult, render, screen, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import 'jest'; import React from 'react'; @@ -41,7 +41,11 @@ const mockedResponses: { * @private * @returns mock settings */ -function MockSettings(commitAndPush = true, promptUserIdentity = false) { +function MockSettings( + commitAndPush = true, + promptUserIdentity = false, + simpleStaging = false +) { return { changed: { connect: () => true, @@ -49,7 +53,8 @@ function MockSettings(commitAndPush = true, promptUserIdentity = false) { }, composite: { commitAndPush, - promptUserIdentity + promptUserIdentity, + simpleStaging } }; } @@ -103,6 +108,7 @@ describe('GitPanel', () => { describe('#commitFiles()', () => { let commitSpy: jest.SpyInstance>; let configSpy: jest.SpyInstance>; + let renderResult: RenderResult; const commitSummary = 'Fix really stupid bug'; const commitDescription = 'This will probably break everything :)'; @@ -151,8 +157,6 @@ describe('GitPanel', () => { beforeEach(() => { configSpy = props.model.config = jest.fn(); commitSpy = props.model.commit = jest.fn(); - // @ts-expect-error turn off set status - props.model._setStatus = jest.fn(); // @ts-expect-error set a private prop props.model._status = { @@ -173,10 +177,15 @@ describe('GitPanel', () => { state: 0 }; - render(); + // @ts-expect-error turn off set status + props.model._setStatus = jest.fn(() => { + props.model['_statusChanged'].emit(props.model['_status']); + }); + + renderResult = render(); }); - it.skip('should commit when commit message is provided', async () => { + it('should commit when commit message is provided', async () => { configSpy.mockResolvedValue({ options: commitUser }); await userEvent.type(screen.getAllByRole('textbox')[0], commitSummary); @@ -212,16 +221,18 @@ describe('GitPanel', () => { expect(commitSpy).not.toHaveBeenCalled(); }); - it.skip('should prompt for user identity if explicitly configured', async () => { + it('should prompt for user identity if explicitly configured', async () => { configSpy.mockResolvedValue({ options: commitUser }); props.settings = MockSettings(false, true) as any; - render(); + renderResult.rerender(); mockUtils.showDialog.mockResolvedValue(dialogValue); await userEvent.type(screen.getAllByRole('textbox')[0], commitSummary); - await userEvent.click(screen.getByRole('button', { name: 'Commit' })); + await userEvent.click( + screen.getAllByRole('button', { name: 'Commit' })[0] + ); expect(configSpy).toHaveBeenCalledTimes(1); expect(configSpy.mock.calls[0]).toHaveLength(0); @@ -231,7 +242,7 @@ describe('GitPanel', () => { expect(commitSpy).toHaveBeenCalledWith(commitSummary, false, author); }); - it.skip('should prompt for user identity if user.name is not set', async () => { + it('should prompt for user identity if user.name is not set', async () => { configSpy.mockImplementation(mockConfigImplementation('user.email')); mockUtils.showDialog.mockResolvedValue(dialogValue); @@ -247,7 +258,7 @@ describe('GitPanel', () => { expect(commitSpy).toHaveBeenCalledWith(commitSummary, false, null); }); - it.skip('should prompt for user identity if user.email is not set', async () => { + it('should prompt for user identity if user.email is not set', async () => { configSpy.mockImplementation(mockConfigImplementation('user.name')); mockUtils.showDialog.mockResolvedValue(dialogValue); @@ -263,7 +274,7 @@ describe('GitPanel', () => { expect(commitSpy).toHaveBeenCalledWith(commitSummary, false, null); }); - it.skip('should not commit if no user identity is set and the user rejects the dialog', async () => { + it('should not commit if no user identity is set and the user rejects the dialog', async () => { configSpy.mockResolvedValue({ options: {} }); mockUtils.showDialog.mockResolvedValue({ button: {