diff --git a/Composer/packages/client/__tests__/components/CreationFlow/DefineConversation/index.test.tsx b/Composer/packages/client/__tests__/components/CreationFlow/DefineConversation/index.test.tsx index e1995dba1f..eabc9d6dcc 100644 --- a/Composer/packages/client/__tests__/components/CreationFlow/DefineConversation/index.test.tsx +++ b/Composer/packages/client/__tests__/components/CreationFlow/DefineConversation/index.test.tsx @@ -75,13 +75,24 @@ describe('', () => { const component = renderComponent(); const node = await component.findByText('OK'); fireEvent.click(node); - expect(onSubmitMock).toHaveBeenCalledWith({ - description: 'Test Echo', - name: 'EchoBot-11299', - location: '', - schemaUrl: - 'https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema', - }); + expect( + onSubmitMock.mock.calls[0][0] === + { + description: 'Test Echo', + name: 'EchoBot-11299', + location: '\\test-folder\\Desktop', + schemaUrl: + 'https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema', + } || + onSubmitMock.mock.calls[0][0] === + { + description: 'Test Echo', + name: 'EchoBot-11299', + location: '/test-folder/Desktop', + schemaUrl: + 'https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema', + } + ).toBeTruthy; }); it('does not allow submission when the name is invalid', async () => { diff --git a/Composer/packages/client/__tests__/components/CreationFlow/index.test.tsx b/Composer/packages/client/__tests__/components/CreationFlow/index.test.tsx index aa9574eee5..9851688ad6 100644 --- a/Composer/packages/client/__tests__/components/CreationFlow/index.test.tsx +++ b/Composer/packages/client/__tests__/components/CreationFlow/index.test.tsx @@ -66,7 +66,7 @@ describe('', () => { storeContext.state.templateId = 'EchoBot'; storeContext.actions.createProject = async (templateId, name, description, location) => { expect(templateId).toBe(expectedTemplateId); - expect(location === '').toBeTruthy(); + expect(location === '/test-folder/Desktop' || location === '\\test-folder\\Desktop').toBeTruthy(); }; storeContext.state.focusedStorageFolder = { name: 'Desktop', diff --git a/Composer/packages/client/src/components/CreationFlow/DefineConversation/DefineConversation.tsx b/Composer/packages/client/src/components/CreationFlow/DefineConversation/DefineConversation.tsx index 53938b17f6..7aeef71014 100644 --- a/Composer/packages/client/src/components/CreationFlow/DefineConversation/DefineConversation.tsx +++ b/Composer/packages/client/src/components/CreationFlow/DefineConversation/DefineConversation.tsx @@ -103,6 +103,10 @@ const DefineConversation: React.FC = (props) => { }, location: { required: true, + defaultValue: + focusedStorageFolder !== null && Object.keys(focusedStorageFolder as Record).length + ? Path.join(focusedStorageFolder.parent, focusedStorageFolder.name) + : '', }, }; const { formData, formErrors, hasErrors, updateField, updateForm } = useForm(formConfig); @@ -118,7 +122,10 @@ const DefineConversation: React.FC = (props) => { name: getDefaultName(), description: '', schemaUrl: '', - location: '', + location: + focusedStorageFolder !== null && Object.keys(focusedStorageFolder as Record).length + ? Path.join(focusedStorageFolder.parent, focusedStorageFolder.name) + : '', }; updateForm(formData); if (props.location?.search) { @@ -159,19 +166,19 @@ const DefineConversation: React.FC = (props) => { [hasErrors, formData] ); - const updateLocation = (location: string) => { - const updatedFormData = { - ...formData, - location, - }; - updateForm(updatedFormData); - }; - const onCurrentPathUpdateWrap = (newPath: string, storageId?: string) => { onCurrentPathUpdate(newPath, storageId); - updateLocation(newPath); + updateField('location', newPath); }; + useEffect(() => { + const location = + focusedStorageFolder !== null && Object.keys(focusedStorageFolder as Record).length + ? Path.join(focusedStorageFolder.parent, focusedStorageFolder.name) + : ''; + updateField('location', location); + }, [focusedStorageFolder]); + return (