diff --git a/packages/playground/src/components/node_selector/TfManualNodeSelector.vue b/packages/playground/src/components/node_selector/TfManualNodeSelector.vue index 59083bc25d..a3c9f25929 100644 --- a/packages/playground/src/components/node_selector/TfManualNodeSelector.vue +++ b/packages/playground/src/components/node_selector/TfManualNodeSelector.vue @@ -136,12 +136,14 @@ export default { } placeholderNode.value = node; - const features = getFeatures(gridStore, filters.value); - let missingFeatures = features.filter(value => !node.features.includes(value as Features)); + if (node === undefined || node === null) { - throw `Node ${nodeId} is not on the grid`; + throw `Node ${nodeId} doesn't exist.`; } + const features = getFeatures(gridStore, filters.value); + let missingFeatures = features.filter(value => !node?.features.includes(value as Features)); + const [{ data: farms }, e1] = await resolveAsync(gridProxyClient.farms.list({ farmId: node.farmId })); if (e1) { throw normalizeError(e1, _defaultError); diff --git a/packages/playground/tests/frontend_selenium/pages/dashboard.py b/packages/playground/tests/frontend_selenium/pages/dashboard.py index a6af0ec7a7..317b23e2b1 100644 --- a/packages/playground/tests/frontend_selenium/pages/dashboard.py +++ b/packages/playground/tests/frontend_selenium/pages/dashboard.py @@ -49,7 +49,7 @@ class DashboardPage: nodes_stats = (By.XPATH, "//p[contains(@class, 'text-center') and following-sibling::p[text()='Nodes']]") countries_stats = (By.XPATH, "//p[contains(@class, 'text-center') and following-sibling::p[text()='Countries']]") cores_stats = (By.XPATH, "//p[contains(@class, 'text-center') and following-sibling::p[text()='Cores']]") - profile_button = (By.XPATH, '/html/body/div[1]/div/div/main/header[1]/div/div[3]/i') + profile_button = (By.CLASS_NAME, 'v-card') profile_label = (By.XPATH, '/html/body/div[1]/div/div/main/div/div[2]/div/div/div/div[1]/div/div[1]') qr_code_img = (By.XPATH, "//img[@alt='qrcode']") sidebar_manual = (By.XPATH, "//span[text()='Manual']")