initial playwright setup and test (#1039)
* initial playwright setup and test * try verbose logging * double check resolution * double check token * remove logs * try running on ubuntu and macos * move e2e tests * vitest ignores playwright tests * add a series of tests * tweak yarn setup * typo * update fmt * action typo * rust toolchain? * remove .only from playwright test * A snapshot a day keeps the bugs away! 📷🐛 * A snapshot a day keeps the bugs away! 📷🐛 * add pan and zoom back * try puting os in commit message * A snapshot a day keeps the bugs away! 📷🐛 .os * A snapshot a day keeps the bugs away! 📷🐛 .os * fix commit message * A snapshot a day keeps the bugs away! 📷🐛 (OS: macos-latest) * add command logs to UI for axis tests * typo * fmt * remove .only * add auto complete test * remove .only * update queries to be more playwright recommended * move test utils * remove waits from first test * remove old snapshots * re-arrange files and tests * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest) * trigger CI * refactor plane test * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest) * remove .only * try longer wait * try snap shoting * fmt * better CI names * fix * fix linux * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest) * try make executes on load a bit more robust * fix * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest) * stabilise snapshots * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest) * A snapshot a day keeps the bugs away! 📷🐛 (OS: macos-latest) * make tests run linearly * update naming * tidy * .only * update readme * trigger CI * add set tool * util clean up * update readme * readme tweaks * self-review clean up * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu) * tweak * update readme * Ensure Vite preview server is running before running any Playwright tests (#1114) * Ensure that Vite is serving before tests run * Don't break secrets if developer has extra blank line in env file * @mxschmitt's suggestions * fix * add wait-on types * tsconfig fix * update readme * code template for sktech on each plane test --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Frank Noirot <frank@kittycad.io>
This commit is contained in:
85
src/components/EngineCommands.tsx
Normal file
85
src/components/EngineCommands.tsx
Normal file
@ -0,0 +1,85 @@
|
||||
import { CommandLog, engineCommandManager } from 'lang/std/engineConnection'
|
||||
import { useState, useEffect } from 'react'
|
||||
|
||||
function useEngineCommands(): [CommandLog[], () => void] {
|
||||
const [engineCommands, setEngineCommands] = useState<CommandLog[]>([])
|
||||
|
||||
useEffect(() => {
|
||||
engineCommandManager.registerCommandLogCallback((commands) =>
|
||||
setEngineCommands(commands)
|
||||
)
|
||||
}, [])
|
||||
|
||||
return [engineCommands, () => engineCommandManager.clearCommandLogs()]
|
||||
}
|
||||
|
||||
export const EngineCommands = () => {
|
||||
const [engineCommands, clearEngineCommands] = useEngineCommands()
|
||||
const [containsFilter, setContainsFilter] = useState('')
|
||||
const [customCmd, setCustomCmd] = useState('')
|
||||
return (
|
||||
<div>
|
||||
<input
|
||||
className="text-gray-800 bg-slate-300 px-2"
|
||||
data-testid="filter-input"
|
||||
type="text"
|
||||
value={containsFilter}
|
||||
onChange={(e) => setContainsFilter(e.target.value)}
|
||||
placeholder="Filter"
|
||||
/>
|
||||
<div className="max-w-xl max-h-36 overflow-auto">
|
||||
{engineCommands.map((command, index) => {
|
||||
const stringer = JSON.stringify(command)
|
||||
if (containsFilter && !stringer.includes(containsFilter)) return null
|
||||
return (
|
||||
<pre className="text-xs">
|
||||
<code
|
||||
key={index}
|
||||
data-message-type={command.type}
|
||||
data-command-type={
|
||||
(command.type === 'send-modeling' ||
|
||||
command.type === 'send-scene') &&
|
||||
command.data.type === 'modeling_cmd_req'
|
||||
? command?.data?.cmd?.type
|
||||
: ''
|
||||
}
|
||||
data-command-id={
|
||||
(command.type === 'send-modeling' ||
|
||||
command.type === 'send-scene') &&
|
||||
command.data.type === 'modeling_cmd_req'
|
||||
? command.data.cmd_id
|
||||
: ''
|
||||
}
|
||||
data-receive-command-type={
|
||||
command.type === 'receive-reliable' ? command.cmd_type : ''
|
||||
}
|
||||
>
|
||||
{JSON.stringify(command, null, 2)}
|
||||
</code>
|
||||
</pre>
|
||||
)
|
||||
})}
|
||||
</div>
|
||||
<button data-testid="clear-commands" onClick={clearEngineCommands}>
|
||||
Clear
|
||||
</button>
|
||||
<br />
|
||||
<input
|
||||
className="text-gray-800 bg-slate-300 px-2"
|
||||
type="text"
|
||||
value={customCmd}
|
||||
onChange={(e) => setCustomCmd(e.target.value)}
|
||||
placeholder="JSON command"
|
||||
data-testid="custom-cmd-input"
|
||||
/>
|
||||
<button
|
||||
data-testid="custom-cmd-send-button"
|
||||
onClick={() =>
|
||||
engineCommandManager.sendSceneCommand(JSON.parse(customCmd))
|
||||
}
|
||||
>
|
||||
Send custom command
|
||||
</button>
|
||||
</div>
|
||||
)
|
||||
}
|
Reference in New Issue
Block a user