diff --git a/.github/actions/install-r/action.yml b/.github/actions/install-r/action.yml index 5cc2189b263..9bc3713508d 100644 --- a/.github/actions/install-r/action.yml +++ b/.github/actions/install-r/action.yml @@ -17,13 +17,13 @@ runs: curl -Ls https://github.com/r-lib/rig/releases/download/latest/rig-linux-"$(arch)"-latest.tar.gz | sudo tar xz -C /usr/local rig add "$R_VERSION" - - name: Configure Posit PPM for Ubuntu 22.04 with Custom HTTP User-Agent + - name: Configure Posit PPM for Ubuntu 24.04 with Custom HTTP User-Agent shell: bash run: | - echo "Configuring R to use Posit Package Manager for Jammy..." + echo "Configuring R to use Posit Package Manager for Ubuntu 24.04..." cat < ~/.Rprofile options( - repos = c(RSPM = "https://packagemanager.posit.co/cran/__linux__/jammy/latest"), + repos = c(RSPM = "https://packagemanager.posit.co/cran/__linux__/noble/latest"), HTTPUserAgent = sprintf( "R/%s (%s) R (%s)", getRversion(), "ubuntu-2404", diff --git a/resources/linux/code-url-handler.desktop b/resources/linux/code-url-handler.desktop index 7106e0e0969..9b350d605df 100644 --- a/resources/linux/code-url-handler.desktop +++ b/resources/linux/code-url-handler.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Name=@@NAME_LONG@@ - URL Handler -Comment=Code Editing. Redefined. +Comment=The next generation IDE for data science GenericName=Text Editor Exec=@@EXEC@@ --open-url %U Icon=@@ICON@@ diff --git a/resources/linux/code.desktop b/resources/linux/code.desktop index 4c939a2fab8..f64a3cb1644 100755 --- a/resources/linux/code.desktop +++ b/resources/linux/code.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Name=@@NAME_LONG@@ -Comment=Code Editing. Redefined. +Comment=The next generation IDE for data science GenericName=Text Editor Exec=@@EXEC@@ %F Icon=@@ICON@@ diff --git a/test/e2e/pages/variables.ts b/test/e2e/pages/variables.ts index 2f230684c48..7993d061e93 100644 --- a/test/e2e/pages/variables.ts +++ b/test/e2e/pages/variables.ts @@ -150,6 +150,13 @@ export class Variables { await this.code.driver.page.locator('a.action-menu-item', { hasText: name }).first().click(); } + async getVariablesGroupList() { + await this.code.driver.page.locator(VARIABLES_GROUP_SELECTOR).click(); + const groupList = await this.code.driver.page.locator('a.action-menu-item').all(); + const groupNames = await Promise.all(groupList.map(async (group) => group.innerText())); + return groupNames; + } + async clickDatabaseIconForVariableRow(rowName: string) { const DATABASE_ICON = '.codicon-database'; await this.code.driver.page.locator(VARIABLE_ITEMS).filter({ hasText: rowName }).locator(DATABASE_ICON).click(); diff --git a/test/e2e/tests/help/help.test.ts b/test/e2e/tests/help/help.test.ts index d1ce16f6e04..cd2e603c7e4 100644 --- a/test/e2e/tests/help/help.test.ts +++ b/test/e2e/tests/help/help.test.ts @@ -37,7 +37,7 @@ test.describe('Help', { tag: [tags.HELP, tags.WEB] }, () => { }); - test('Verifies help panel can be opened when empty and also can be resized smaller and remember resize height [C640934]', async function ({ app, logger }) { + test('Verifies help panel can be opened when empty and also can be resized smaller and remember resize height [C640934]', { tag: [tags.WIN] }, async function ({ app, logger }) { // Not running on windows as the size calculation is off for the resolution in CI const help = app.workbench.help; const helpContainerLocator = help.getHelpContainer(); @@ -83,7 +83,7 @@ test.describe('Help', { tag: [tags.HELP, tags.WEB] }, () => { // Reopen the panel await helpPanelHeaderLocator.click(); - if (helpPanelHeightAfter < 100) { + if (helpPanelHeightAfter <= 100) { // When the panel is small enough, it will pop back to the full size. // This can happen if the window used for testing is too small. // In this case we want to end the test early because the behavior wont be as diff --git a/test/e2e/tests/plots/plots.test.ts b/test/e2e/tests/plots/plots.test.ts index 8d324e2207b..f3ae00abeb0 100644 --- a/test/e2e/tests/plots/plots.test.ts +++ b/test/e2e/tests/plots/plots.test.ts @@ -227,7 +227,10 @@ test.describe('Plots', { tag: [tags.PLOTS, tags.EDITOR] }, () => { }); - test('Python - Verifies bokeh Python widget [C730343]', { tag: [tags.WEB, tags.WIN] }, async function ({ app }) { + test.skip('Python - Verifies bokeh Python widget [C730343]', { + annotation: [{ type: 'issue', description: 'https://github.com/posit-dev/positron/issues/6045' }], + tag: [tags.WEB, tags.WIN] + }, async function ({ app }) { await app.workbench.console.pasteCodeToConsole(bokeh); await app.workbench.console.sendEnterKey(); diff --git a/test/e2e/tests/variables/variables-pane.test.ts b/test/e2e/tests/variables/variables-pane.test.ts index b1533eba72b..838d6ec296f 100644 --- a/test/e2e/tests/variables/variables-pane.test.ts +++ b/test/e2e/tests/variables/variables-pane.test.ts @@ -36,6 +36,17 @@ test.describe('Variables Pane', { }); + test.skip('Python - Verifies only 1 entery per environment', { + annotation: [{ type: 'issue', description: 'https://github.com/posit-dev/positron/issues/5887' }], + }, async function ({ app, logger, python }) { + await app.workbench.console.barClearButton.click(); + await app.workbench.console.barRestartButton.click(); + await app.workbench.console.waitForReady('>>>'); + await app.workbench.console.waitForConsoleContents('restarted'); + const groupList = app.workbench.variables.getVariablesGroupList(); + expect((await groupList).length).toBe(1); + }); + test('R - Verifies Variables pane basic function [C628635]', async function ({ app, logger, r }) { const executeCode = async (code: string) => { await app.workbench.console.executeCode('R', code); @@ -54,4 +65,18 @@ test.describe('Variables Pane', { expect(variablesMap.get('y')).toStrictEqual({ value: '10', type: 'dbl' }); expect(variablesMap.get('z')).toStrictEqual({ value: '100', type: 'dbl' }); }); + + + test.skip('R - Verifies only 1 entery per environment', { + annotation: [{ type: 'issue', description: 'https://github.com/posit-dev/positron/issues/5887' }], + }, async function ({ app, logger, r }) { + await app.workbench.console.barClearButton.click(); + await app.workbench.console.barRestartButton.click(); + await app.workbench.console.waitForReady('>'); + await app.workbench.console.waitForConsoleContents('restarted'); + const groupList = app.workbench.variables.getVariablesGroupList(); + expect((await groupList).length).toBe(1); + }); }); + +