diff --git a/app/forms/instance-create.tsx b/app/forms/instance-create.tsx index 211ee7aa36..b37ae653af 100644 --- a/app/forms/instance-create.tsx +++ b/app/forms/instance-create.tsx @@ -204,7 +204,7 @@ const baseDefaultValues: InstanceCreateInput = { */ presetId: 'general-xs', memory: 8, - ncpus: 2, + ncpus: 1, hostname: '', bootDiskName: '', @@ -647,12 +647,6 @@ export default function CreateInstanceForm() { General Purpose - - High CPU - - - High Memory - Custom @@ -663,18 +657,6 @@ export default function CreateInstanceForm() { - - - {renderLargeRadioCards('highCPU')} - - - - - - {renderLargeRadioCards('highMemory')} - - - { )) } +// 1 vCPU to 8 GiB RAM const PRESETS = [ - { category: 'general', id: 'general-xs', memory: 8, ncpus: 2 }, - { category: 'general', id: 'general-sm', memory: 16, ncpus: 4 }, - { category: 'general', id: 'general-md', memory: 32, ncpus: 8 }, - { category: 'general', id: 'general-lg', memory: 64, ncpus: 16 }, - - { category: 'highCPU', id: 'highCPU-xs', memory: 4, ncpus: 2 }, - { category: 'highCPU', id: 'highCPU-sm', memory: 8, ncpus: 4 }, - { category: 'highCPU', id: 'highCPU-md', memory: 16, ncpus: 8 }, - { category: 'highCPU', id: 'highCPU-lg', memory: 32, ncpus: 16 }, - - { category: 'highMemory', id: 'highMemory-xs', memory: 16, ncpus: 2 }, - { category: 'highMemory', id: 'highMemory-sm', memory: 32, ncpus: 4 }, - { category: 'highMemory', id: 'highMemory-md', memory: 64, ncpus: 8 }, - { category: 'highMemory', id: 'highMemory-lg', memory: 128, ncpus: 16 }, + { category: 'general', id: 'general-xs', memory: 8, ncpus: 1 }, + { category: 'general', id: 'general-sm', memory: 16, ncpus: 2 }, + { category: 'general', id: 'general-md', memory: 32, ncpus: 4 }, + { category: 'general', id: 'general-lg', memory: 64, ncpus: 8 }, { category: 'custom', id: 'custom', memory: 0, ncpus: 0 }, ] as const diff --git a/test/e2e/instance-create.e2e.ts b/test/e2e/instance-create.e2e.ts index f21a5c9a0a..7a0995b39b 100644 --- a/test/e2e/instance-create.e2e.ts +++ b/test/e2e/instance-create.e2e.ts @@ -52,6 +52,9 @@ test('can create an instance', async ({ page }) => { const instanceName = 'my-instance' await page.getByRole('textbox', { name: 'Name', exact: true }).fill(instanceName) await page.fill('textarea[name=description]', 'An instance... from space!') + + // first preset is selected by default + await expect(page.getByRole('radio', { name: '1 CPU 8 gibibytes RAM' })).toBeChecked() await page.locator('.ox-radio-card').nth(3).click() await page.getByRole('textbox', { name: 'Disk name' }).fill('my-boot-disk') @@ -104,7 +107,7 @@ test('can create an instance', async ({ page }) => { await expect(page).toHaveURL(`/projects/mock-project/instances/${instanceName}/storage`) await expect(page.getByRole('heading', { name: instanceName })).toBeVisible() - await expect(page.getByText('16 vCPUs')).toBeVisible() + await expect(page.getByText('8 vCPUs')).toBeVisible() await expect(page.getByText('64 GiB')).toBeVisible() await expect(page.getByText('from space')).toBeVisible() @@ -189,18 +192,6 @@ test('duplicate instance name produces visible error', async ({ page }) => { await expect(page.getByText('Instance name already exists')).toBeVisible() }) -test('first preset is auto-selected in each tab', async ({ page }) => { - await page.goto('/projects/mock-project/instances-new') - - await expect(page.getByRole('radio', { name: '2 CPU 8 gibibytes RAM' })).toBeChecked() - await page.getByRole('tab', { name: 'High CPU' }).click() - await expect(page.getByRole('radio', { name: '2 CPU 4 gibibytes RAM' })).toBeChecked() - await page.getByRole('tab', { name: 'High Memory' }).click() - await expect(page.getByRole('radio', { name: '2 CPU 16 gibibytes RAM' })).toBeChecked() - await page.getByRole('tab', { name: 'General Purpose' }).click() - await expect(page.getByRole('radio', { name: '2 CPU 8 gibibytes RAM' })).toBeChecked() -}) - test('can create an instance with custom hardware', async ({ page }) => { await page.goto('/projects/mock-project/instances-new') @@ -208,12 +199,6 @@ test('can create an instance with custom hardware', async ({ page }) => { await page.fill('input[name=name]', instanceName) await page.fill('textarea[name=description]', 'An instance... from space!') - // Click the other tabs to make sure the custom input works - // even when something has been previously selected - await page.getByRole('tab', { name: 'High CPU' }).click() - await page.getByRole('tab', { name: 'High Memory' }).click() - await page.getByText('64 GiB RAM').click() - // Fill in custom specs await page.getByRole('tab', { name: 'Custom' }).click() await page.getByRole('textbox', { name: 'CPUs' }).fill('29')