diff --git a/studio/components/interfaces/Settings/Logs/Logs.SavedQueriesItem.tsx b/studio/components/interfaces/Settings/Logs/Logs.SavedQueriesItem.tsx index d991b57ef2c..8bd1cf7e361 100644 --- a/studio/components/interfaces/Settings/Logs/Logs.SavedQueriesItem.tsx +++ b/studio/components/interfaces/Settings/Logs/Logs.SavedQueriesItem.tsx @@ -47,7 +47,7 @@ const SavedQueriesItem: FC = ({ item }: Props) => { type="alternative" iconRight={} onClick={() => - router.push(`/project/${ref}/logs-explorer?sql=${encodeURI(item.content.sql)}`) + router.push(`/project/${ref}/logs-explorer?sql=${encodeURIComponent(item.content.sql)}`) } > Run diff --git a/studio/components/interfaces/Settings/Logs/LogsPreviewer.tsx b/studio/components/interfaces/Settings/Logs/LogsPreviewer.tsx index 731c2a973b6..1656b5a720d 100644 --- a/studio/components/interfaces/Settings/Logs/LogsPreviewer.tsx +++ b/studio/components/interfaces/Settings/Logs/LogsPreviewer.tsx @@ -159,7 +159,7 @@ export const LogsPreviewer: React.FC = ({ : '' } onExploreClick={() => { - router.push(`/project/${projectRef}/logs-explorer?q=${params.rawSql}`) + router.push(`/project/${projectRef}/logs-explorer?q=${encodeURIComponent(params.rawSql)}`) }} onSelectTemplate={onSelectTemplate} dispatchWhereFilters={dispatchWhereFilters} diff --git a/studio/tests/pages/projects/LogsPreviewer.test.js b/studio/tests/pages/projects/LogsPreviewer.test.js index 582f623a5c1..129e63add72 100644 --- a/studio/tests/pages/projects/LogsPreviewer.test.js +++ b/studio/tests/pages/projects/LogsPreviewer.test.js @@ -283,3 +283,12 @@ test('bug: nav backwards with params change results in ui changing', async () => await screen.findByDisplayValue('simple-query') }) + +test("bug: nav to explorer preserves newlines", async ()=>{ + render( + + ) + const router = useRouter() + userEvent.click(await screen.findByText(/Explore/)) + await expect(router.push).toBeCalledWith(expect.stringContaining(encodeURIComponent("\n"))) +} \ No newline at end of file