diff --git a/libraries/botbuilder-dialogs/src/prompts/choicePrompt.ts b/libraries/botbuilder-dialogs/src/prompts/choicePrompt.ts index f60491d074..d4256ab286 100644 --- a/libraries/botbuilder-dialogs/src/prompts/choicePrompt.ts +++ b/libraries/botbuilder-dialogs/src/prompts/choicePrompt.ts @@ -93,7 +93,7 @@ export class ChoicePrompt extends Prompt { const choices: any[] = (this.style === ListStyle.suggestedAction ? ChoiceFactory.toChoices(options.choices) : options.choices) || []; const channelId: string = context.activity.channelId; const choiceOptions: ChoiceFactoryOptions = this.choiceOptions || this.choiceDefaults[locale]; - const choiceStyle: ListStyle = options.style || this.style; + const choiceStyle: ListStyle = options.style === 0 ? 0 : options.style || this.style; if (isRetry && options.retryPrompt) { prompt = this.appendChoices(options.retryPrompt, channelId, choices, choiceStyle, choiceOptions); } else { diff --git a/libraries/botbuilder-dialogs/tests/choicePrompt.test.js b/libraries/botbuilder-dialogs/tests/choicePrompt.test.js index 8bfe4b0490..8e3bbb0b84 100644 --- a/libraries/botbuilder-dialogs/tests/choicePrompt.test.js +++ b/libraries/botbuilder-dialogs/tests/choicePrompt.test.js @@ -136,6 +136,39 @@ describe('ChoicePrompt', function () { .assertReply('red'); }); + it('should appropriately apply ListStyle.none when set via PromptOptions', async function () { + const adapter = new TestAdapter(async (turnContext) => { + const dc = await dialogs.createContext(turnContext); + + const results = await dc.continueDialog(); + if (results.status === DialogTurnStatus.empty) { + await dc.prompt('prompt', { + prompt: 'Please choose a color.', + choices: stringChoices, + style: ListStyle.none + }); + } else if (results.status === DialogTurnStatus.complete) { + const selectedChoice = results.result; + await turnContext.sendActivity(selectedChoice.value); + } + await convoState.saveChanges(turnContext); + }); + // Create new ConversationState with MemoryStorage and register the state as middleware. + const convoState = new ConversationState(new MemoryStorage()); + + // Create a DialogState property, DialogSet and ChoicePrompt. + const dialogState = convoState.createProperty('dialogState'); + const dialogs = new DialogSet(dialogState); + const choicePrompt = new ChoicePrompt('prompt'); + + dialogs.add(choicePrompt); + + await adapter.send('Hello') + .assertReply('Please choose a color.') + .send(answerMessage) + .assertReply('red'); + }); + it('should send custom retryPrompt.', async function () { const adapter = new TestAdapter(async (turnContext) => { const dc = await dialogs.createContext(turnContext);