chore: allow opt out from watch (#21471)
This commit is contained in:
parent
e9f94f0346
commit
de0b66c888
|
|
@ -21,12 +21,6 @@ test.describe('New Todo', () => {
|
||||||
// create a new todo locator
|
// create a new todo locator
|
||||||
const newTodo = page.getByPlaceholder('What needs to be done?');
|
const newTodo = page.getByPlaceholder('What needs to be done?');
|
||||||
// Create 1st todo.
|
// Create 1st todo.
|
||||||
expect.soft(1).toBe(2);
|
|
||||||
expect.soft(1).toBe(2);
|
|
||||||
expect.soft(1).toBe(2);
|
|
||||||
expect.soft(1).toBe(2);
|
|
||||||
expect.soft(1).toBe(2);
|
|
||||||
expect.soft(1).toBe(2);
|
|
||||||
await newTodo.fill(TODO_ITEMS[0]);
|
await newTodo.fill(TODO_ITEMS[0]);
|
||||||
await newTodo.press('Enter');
|
await newTodo.press('Enter');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,7 @@ export const WatchModeView: React.FC<{}> = ({
|
||||||
const [progress, setProgress] = React.useState<Progress>({ total: 0, passed: 0, failed: 0 });
|
const [progress, setProgress] = React.useState<Progress>({ total: 0, passed: 0, failed: 0 });
|
||||||
const [selectedTestItem, setSelectedTestItem] = React.useState<TestItem | undefined>(undefined);
|
const [selectedTestItem, setSelectedTestItem] = React.useState<TestItem | undefined>(undefined);
|
||||||
const [settingsVisible, setSettingsVisible] = React.useState<boolean>(false);
|
const [settingsVisible, setSettingsVisible] = React.useState<boolean>(false);
|
||||||
|
const [isWatchingFiles, setIsWatchingFiles] = React.useState<boolean>(true);
|
||||||
|
|
||||||
updateRootSuite = (rootSuite: Suite, { passed, failed }: Progress) => {
|
updateRootSuite = (rootSuite: Suite, { passed, failed }: Progress) => {
|
||||||
setRootSuite({ value: rootSuite });
|
setRootSuite({ value: rootSuite });
|
||||||
|
|
@ -82,6 +83,7 @@ export const WatchModeView: React.FC<{}> = ({
|
||||||
<ToolbarButton icon='play' title='Run' onClick={runVisibleTests} disabled={isRunningTest}></ToolbarButton>
|
<ToolbarButton icon='play' title='Run' onClick={runVisibleTests} disabled={isRunningTest}></ToolbarButton>
|
||||||
<ToolbarButton icon='debug-stop' title='Stop' onClick={() => sendMessageNoReply('stop')} disabled={!isRunningTest}></ToolbarButton>
|
<ToolbarButton icon='debug-stop' title='Stop' onClick={() => sendMessageNoReply('stop')} disabled={!isRunningTest}></ToolbarButton>
|
||||||
<ToolbarButton icon='refresh' title='Reload' onClick={resetCollectingRootSuite} disabled={isRunningTest}></ToolbarButton>
|
<ToolbarButton icon='refresh' title='Reload' onClick={resetCollectingRootSuite} disabled={isRunningTest}></ToolbarButton>
|
||||||
|
<ToolbarButton icon='eye-watch' title='Watch' toggled={isWatchingFiles} onClick={() => setIsWatchingFiles(!isWatchingFiles)}></ToolbarButton>
|
||||||
<div className='spacer'></div>
|
<div className='spacer'></div>
|
||||||
<ToolbarButton icon='gear' title='Toggle color mode' toggled={settingsVisible} onClick={() => { setSettingsVisible(!settingsVisible); }}></ToolbarButton>
|
<ToolbarButton icon='gear' title='Toggle color mode' toggled={settingsVisible} onClick={() => { setSettingsVisible(!settingsVisible); }}></ToolbarButton>
|
||||||
</Toolbar>
|
</Toolbar>
|
||||||
|
|
@ -89,6 +91,7 @@ export const WatchModeView: React.FC<{}> = ({
|
||||||
projectNames={projectNames}
|
projectNames={projectNames}
|
||||||
rootSuite={rootSuite}
|
rootSuite={rootSuite}
|
||||||
isRunningTest={isRunningTest}
|
isRunningTest={isRunningTest}
|
||||||
|
isWatchingFiles={isWatchingFiles}
|
||||||
runTests={runTests}
|
runTests={runTests}
|
||||||
onTestItemSelected={setSelectedTestItem} />}
|
onTestItemSelected={setSelectedTestItem} />}
|
||||||
{settingsVisible && <SettingsView projectNames={projectNames} setProjectNames={setProjectNames} onClose={() => setSettingsVisible(false)}></SettingsView>}
|
{settingsVisible && <SettingsView projectNames={projectNames} setProjectNames={setProjectNames} onClose={() => setSettingsVisible(false)}></SettingsView>}
|
||||||
|
|
@ -105,8 +108,9 @@ export const TestList: React.FC<{
|
||||||
rootSuite: { value: Suite | undefined },
|
rootSuite: { value: Suite | undefined },
|
||||||
runTests: (testIds: string[]) => void,
|
runTests: (testIds: string[]) => void,
|
||||||
isRunningTest: boolean,
|
isRunningTest: boolean,
|
||||||
|
isWatchingFiles: boolean,
|
||||||
onTestItemSelected: (test: TestItem | undefined) => void,
|
onTestItemSelected: (test: TestItem | undefined) => void,
|
||||||
}> = ({ projectNames, rootSuite, runTests, isRunningTest, onTestItemSelected }) => {
|
}> = ({ projectNames, rootSuite, runTests, isRunningTest, isWatchingFiles, onTestItemSelected }) => {
|
||||||
const [filterText, setFilterText] = React.useState<string>('');
|
const [filterText, setFilterText] = React.useState<string>('');
|
||||||
const [selectedTreeItemId, setSelectedTreeItemId] = React.useState<string | undefined>();
|
const [selectedTreeItemId, setSelectedTreeItemId] = React.useState<string | undefined>();
|
||||||
const [expandedItems, setExpandedItems] = React.useState<Map<string, boolean>>(new Map());
|
const [expandedItems, setExpandedItems] = React.useState<Map<string, boolean>>(new Map());
|
||||||
|
|
@ -147,10 +151,13 @@ export const TestList: React.FC<{
|
||||||
selectedTestItem = selectedTreeItem;
|
selectedTestItem = selectedTreeItem;
|
||||||
else if (selectedTreeItem?.kind === 'case' && selectedTreeItem.children?.length === 1)
|
else if (selectedTreeItem?.kind === 'case' && selectedTreeItem.children?.length === 1)
|
||||||
selectedTestItem = selectedTreeItem.children[0]! as TestItem;
|
selectedTestItem = selectedTreeItem.children[0]! as TestItem;
|
||||||
sendMessageNoReply('watch', { fileName: fileName(selectedTestItem) });
|
|
||||||
return { selectedTreeItem, selectedTestItem };
|
return { selectedTreeItem, selectedTestItem };
|
||||||
}, [selectedTreeItemId, treeItemMap]);
|
}, [selectedTreeItemId, treeItemMap]);
|
||||||
|
|
||||||
|
React.useEffect(() => {
|
||||||
|
sendMessageNoReply('watch', { fileName: isWatchingFiles ? fileName(selectedTestItem) : undefined });
|
||||||
|
}, [selectedTestItem, isWatchingFiles]);
|
||||||
|
|
||||||
onTestItemSelected(selectedTestItem);
|
onTestItemSelected(selectedTestItem);
|
||||||
|
|
||||||
const runTreeItem = (treeItem: TreeItem) => {
|
const runTreeItem = (treeItem: TreeItem) => {
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,10 @@
|
||||||
outline: 1px solid var(--vscode-focusBorder);
|
outline: 1px solid var(--vscode-focusBorder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.list-view-content .list-view-entry.selected {
|
||||||
|
background-color: var(--vscode-list-inactiveSelectionBackground);
|
||||||
|
}
|
||||||
|
|
||||||
.list-view-content:focus .list-view-entry.selected * {
|
.list-view-content:focus .list-view-entry.selected * {
|
||||||
color: var(--vscode-list-activeSelectionForeground) !important;
|
color: var(--vscode-list-activeSelectionForeground) !important;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,6 @@
|
||||||
align-items: center;
|
align-items: center;
|
||||||
flex: none;
|
flex: none;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
margin: 0 5px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.toolbar-linewrap {
|
.toolbar-linewrap {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue