From 17b6741cf337694e22f490aa0f8c152c898bfb1d Mon Sep 17 00:00:00 2001 From: Nikhil Date: Mon, 16 Oct 2023 10:09:41 +0530 Subject: [PATCH 01/14] Fix-6279-wrong-validation-of-projectid --- src/lib/components/customId.svelte | 6 +- src/lib/elements/forms/index.ts | 1 + src/lib/elements/forms/inputProjectId.svelte | 60 ++++++++++++++++++++ tests/unit/elements/inputProjectId.test.ts | 40 +++++++++++++ 4 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 src/lib/elements/forms/inputProjectId.svelte create mode 100644 tests/unit/elements/inputProjectId.test.ts diff --git a/src/lib/components/customId.svelte b/src/lib/components/customId.svelte index dafdb06613..913a1be8e3 100644 --- a/src/lib/components/customId.svelte +++ b/src/lib/components/customId.svelte @@ -2,7 +2,7 @@ import { trackEvent } from '$lib/actions/analytics'; import { InnerModal } from '$lib/components'; import { InputId } from '$lib/elements/forms'; - + import {InputProjectId} from '$lib/elements/forms'; export let show = false; export let name: string; export let id: string; @@ -29,7 +29,11 @@
+ {#if name === 'Project'} + + {:else} + {/if}
diff --git a/src/lib/elements/forms/index.ts b/src/lib/elements/forms/index.ts index 5e2bbd5181..1f729ba4b6 100644 --- a/src/lib/elements/forms/index.ts +++ b/src/lib/elements/forms/index.ts @@ -26,3 +26,4 @@ export { default as InputId } from './inputId.svelte'; export { default as InputSecret } from './inputSecret.svelte'; export { default as Helper } from './helper.svelte'; export { default as Label } from './label.svelte'; +export { default as InputProjectId } from './inputProjectId.svelte'; diff --git a/src/lib/elements/forms/inputProjectId.svelte b/src/lib/elements/forms/inputProjectId.svelte new file mode 100644 index 0000000000..0a534501ab --- /dev/null +++ b/src/lib/elements/forms/inputProjectId.svelte @@ -0,0 +1,60 @@ + + + +
+ + +
+
+
+
+ diff --git a/tests/unit/elements/inputProjectId.test.ts b/tests/unit/elements/inputProjectId.test.ts new file mode 100644 index 0000000000..3af99b51e5 --- /dev/null +++ b/tests/unit/elements/inputProjectId.test.ts @@ -0,0 +1,40 @@ +import '@testing-library/jest-dom'; +import { render } from '@testing-library/svelte'; +import userEvent from '@testing-library/user-event'; +import { InputProjectId } from '../../../src/lib/elements/forms'; + +const validStrings = ['validstring', 'valid-string', 'validstring123', 'valid-']; + +const invalidStrings = ['-invalid', 'Valid', '_invalid', 'Valid123', 'valid.string']; + +test('shows id input', () => { + const { getByPlaceholderText } = render(InputProjectId); + const input = getByPlaceholderText('Enter ID'); + + expect(input).toBeInTheDocument(); + expect(input).toHaveAttribute('type', 'text'); +}); + +test('state', async () => { + const { component, getByPlaceholderText } = render(InputProjectId, { value: '' }); + const input = getByPlaceholderText('Enter ID'); + + expect(component.value).toEqual(''); + await userEvent.type(input, 'lorem'); + expect(component.value).toEqual('lorem'); +}); + +validStrings.forEach((validString) => { + test(`validates ${validString} as valid`, () => { + const { getByPlaceholderText } = render(InputProjectId, { value: validString }); + const input = getByPlaceholderText('Enter ID') as HTMLInputElement; + expect(input.checkValidity()).toBe(true); + }); +}); +invalidStrings.forEach((invalidString) => { + test(`validates ${invalidString} as invalid`, () => { + const { getByPlaceholderText } = render(InputProjectId, { value: invalidString }); + const input = getByPlaceholderText('Enter ID') as HTMLInputElement; + expect(input.checkValidity()).toBe(false); + }); +}); \ No newline at end of file From 75eebc93aaaa36f9ba3139095f16bd88f0989161 Mon Sep 17 00:00:00 2001 From: Nikhil Date: Mon, 16 Oct 2023 10:12:54 +0530 Subject: [PATCH 02/14] Fix-6279-wrong-validation-of-projectid --- src/lib/elements/forms/inputProjectId.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elements/forms/inputProjectId.svelte b/src/lib/elements/forms/inputProjectId.svelte index 0a534501ab..5014f0589b 100644 --- a/src/lib/elements/forms/inputProjectId.svelte +++ b/src/lib/elements/forms/inputProjectId.svelte @@ -54,7 +54,7 @@ class="u-cross-center u-line-height-1 u-color-text-gray" aria-hidden="true" /> - Allowed characters: lowercase alphanumericc and non-leading hyphen + Allowed characters: lowercase alphanumeric and non-leading hyphen From eed2ccae27a3db43eee1b9b5a67befa0a8144867 Mon Sep 17 00:00:00 2001 From: Nikhil Date: Mon, 16 Oct 2023 11:01:09 +0530 Subject: [PATCH 03/14] Fix-6279-wrong-validation-of-projectid --- package-lock.json | 16 ++++++++-------- package.json | 2 +- src/lib/components/customId.svelte | 10 +++++----- src/lib/elements/forms/inputProjectId.svelte | 3 +-- tests/unit/elements/inputProjectId.test.ts | 2 +- 5 files changed, 16 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index adc0688bd7..08b1daeab9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,7 +43,7 @@ "@typescript-eslint/eslint-plugin": "^6.5.0", "@typescript-eslint/parser": "^6.5.0", "@vitest/ui": "^0.29.7", - "eslint": "^8.48.0", + "eslint": "^8.51.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-svelte": "^2.33.0", "jsdom": "^22.1.0", @@ -1288,9 +1288,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", - "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz", + "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4159,15 +4159,15 @@ } }, "node_modules/eslint": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", - "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz", + "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.50.0", + "@eslint/js": "8.51.0", "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", diff --git a/package.json b/package.json index f98d98fd94..ab6aa73b79 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@typescript-eslint/eslint-plugin": "^6.5.0", "@typescript-eslint/parser": "^6.5.0", "@vitest/ui": "^0.29.7", - "eslint": "^8.48.0", + "eslint": "^8.51.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-svelte": "^2.33.0", "jsdom": "^22.1.0", diff --git a/src/lib/components/customId.svelte b/src/lib/components/customId.svelte index 913a1be8e3..124868a77a 100644 --- a/src/lib/components/customId.svelte +++ b/src/lib/components/customId.svelte @@ -2,7 +2,7 @@ import { trackEvent } from '$lib/actions/analytics'; import { InnerModal } from '$lib/components'; import { InputId } from '$lib/elements/forms'; - import {InputProjectId} from '$lib/elements/forms'; + import { InputProjectId } from '$lib/elements/forms'; export let show = false; export let name: string; export let id: string; @@ -30,10 +30,10 @@
{#if name === 'Project'} - - {:else} - - {/if} + + {:else} + + {/if}
diff --git a/src/lib/elements/forms/inputProjectId.svelte b/src/lib/elements/forms/inputProjectId.svelte index 5014f0589b..80c35e8cb1 100644 --- a/src/lib/elements/forms/inputProjectId.svelte +++ b/src/lib/elements/forms/inputProjectId.svelte @@ -54,7 +54,6 @@ class="u-cross-center u-line-height-1 u-color-text-gray" aria-hidden="true" /> - Allowed characters: lowercase alphanumeric and non-leading hyphen + Allowed characters: lowercase alphanumeric and non-leading hyphen - diff --git a/tests/unit/elements/inputProjectId.test.ts b/tests/unit/elements/inputProjectId.test.ts index 3af99b51e5..b2cfcacf71 100644 --- a/tests/unit/elements/inputProjectId.test.ts +++ b/tests/unit/elements/inputProjectId.test.ts @@ -37,4 +37,4 @@ invalidStrings.forEach((invalidString) => { const input = getByPlaceholderText('Enter ID') as HTMLInputElement; expect(input.checkValidity()).toBe(false); }); -}); \ No newline at end of file +}); From b91b8b7fa383806dcb20e33aec739b66b375371a Mon Sep 17 00:00:00 2001 From: Nikhil Date: Tue, 17 Oct 2023 18:06:25 +0530 Subject: [PATCH 04/14] Fix-6279-wrong-validation-of-projectid --- src/lib/components/customId.svelte | 4 ++-- src/routes/console/onboarding/+page.svelte | 2 +- .../console/organization-[organization]/createProject.svelte | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib/components/customId.svelte b/src/lib/components/customId.svelte index 124868a77a..327264fb51 100644 --- a/src/lib/components/customId.svelte +++ b/src/lib/components/customId.svelte @@ -8,7 +8,7 @@ export let id: string; export let autofocus = true; export let fullWidth = false; - + export let isProject = false; $: if (!show) { id = null; } @@ -29,7 +29,7 @@
- {#if name === 'Project'} + {#if isProject === true} {:else} diff --git a/src/routes/console/onboarding/+page.svelte b/src/routes/console/onboarding/+page.svelte index be55cba83b..b12595047c 100644 --- a/src/routes/console/onboarding/+page.svelte +++ b/src/routes/console/onboarding/+page.svelte @@ -64,7 +64,7 @@
{:else} - + {/if}