Skip to content
This repository was archived by the owner on Jan 15, 2025. It is now read-only.

Commit 44f6fa3

Browse files
author
Shuai Wang
authored
fix luis:build write out version in luis setting when the directVersionPublish is not set (#1215)
* init * fix tests * retrigger * remove redundent ()
1 parent eccdf02 commit 44f6fa3

File tree

4 files changed

+61
-14
lines changed

4 files changed

+61
-14
lines changed

packages/lu/src/parser/lubuild/builder.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ export class Builder {
293293
return settingsContent
294294
}
295295

296-
async writeDialogAssets(contents: any[], options: any = {}) {
296+
async writeDialogAssets(contents: any[], options: any = {}, directVersionPublish?: boolean) {
297297
let force = options.force || false
298298
let out = options.out
299299
let luConfig = options.luConfig
@@ -311,7 +311,8 @@ export class Builder {
311311
} else {
312312
outPath = path.resolve(settingsContents[0].id)
313313
}
314-
writeContents.push(this.mergeSettingsContent(outPath, settingsContents))
314+
315+
writeContents.push(this.mergeSettingsContent(outPath, settingsContents, directVersionPublish))
315316
}
316317

317318
for (const content of writeContents) {
@@ -478,14 +479,16 @@ export class Builder {
478479
return contents
479480
}
480481

481-
mergeSettingsContent(settingsPath: string, contents: any[]) {
482+
mergeSettingsContent(settingsPath: string, contents: any[], directVersionPublish?: boolean) {
482483
let settings = new Settings(settingsPath, {})
483484
for (const content of contents) {
484485
const luisAppsMap = JSON.parse(content.content).luis
485486
for (const appName of Object.keys(luisAppsMap)) {
486-
settings.luis[appName] = {
487+
settings.luis[appName] = directVersionPublish ? {
487488
"appId": luisAppsMap[appName]["appId"],
488489
"version": luisAppsMap[appName]["version"]
490+
} : {
491+
"appId": luisAppsMap[appName]["appId"]
489492
}
490493
}
491494
}

packages/luis/src/commands/luis/build.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,13 +154,13 @@ export default class LuisBuild extends Command {
154154
fallbackLocale,
155155
schema,
156156
dialog
157-
})
157+
}, directVersionPublish)
158158

159159
let writeDone = await builder.writeDialogAssets(dialogContents, {
160160
force,
161161
out: outputFolder,
162162
luConfig
163-
})
163+
}, directVersionPublish)
164164

165165
if (writeDone) {
166166
this.log(`Successfully wrote .dialog files to ${outputFolder}\n`)
@@ -173,7 +173,7 @@ export default class LuisBuild extends Command {
173173
force,
174174
out: outputFolder,
175175
luConfig
176-
})
176+
}, directVersionPublish)
177177

178178
if (writeDone) {
179179
this.log(`Successfully wrote settings file to ${outputFolder}\n`)

packages/luis/test/commands/luis/build.test.ts

Lines changed: 44 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -576,7 +576,7 @@ describe('luis:build write dialog and settings assets successfully if --dialog s
576576

577577
test
578578
.stdout()
579-
.command(['luis:build', '--in', './test/fixtures/testcases/lubuild/sandwich/lufiles/sandwich.en-us.lu', '--authoringKey', uuidv1(), '--botName', 'test', '--out', './results', '--dialog', 'multiLanguage', '--log', '--suffix', 'development'])
579+
.command(['luis:build', '--in', './test/fixtures/testcases/lubuild/sandwich/lufiles/sandwich.en-us.lu', '--authoringKey', uuidv1(), '--botName', 'test', '--out', './results', '--dialog', 'multiLanguage', '--log', '--suffix', 'development', '--directVersionPublish'])
580580
.it('should write dialog and settings assets successfully when --dialog set to multiLanguage', async ctx => {
581581
expect(await compareFiles('./../../../results/luis.settings.development.westus.json', './../../fixtures/testcases/lubuild/sandwich/config/luis.settings.development.westus.json')).to.be.true
582582
expect(await compareFiles('./../../../results/sandwich.en-us.lu.dialog', './../../fixtures/testcases/lubuild/sandwich/dialogs/sandwich.en-us.lu.dialog')).to.be.true
@@ -615,7 +615,7 @@ describe('luis:build write dialog and settings assets successfully if --dialog s
615615

616616
test
617617
.stdout()
618-
.command(['luis:build', '--in', './test/fixtures/testcases/lubuild/sandwich/lufiles/sandwich.en-us.lu', '--authoringKey', uuidv1(), '--botName', 'test', '--dialog', 'crosstrained', '--out', './results', '--log', '--suffix', 'development'])
618+
.command(['luis:build', '--in', './test/fixtures/testcases/lubuild/sandwich/lufiles/sandwich.en-us.lu', '--authoringKey', uuidv1(), '--botName', 'test', '--dialog', 'crosstrained', '--out', './results', '--log', '--suffix', 'development', '--directVersionPublish'])
619619
.it('should write dialog and settings assets successfully when --dialog set to crosstrained', async ctx => {
620620
expect(await compareFiles('./../../../results/luis.settings.development.westus.json', './../../fixtures/testcases/lubuild/sandwich/config/luis.settings.development.westus.json')).to.be.true
621621
expect(await compareFiles('./../../../results/sandwich.lu.qna.dialog', './../../fixtures/testcases/lubuild/sandwich/dialogs/sandwich.lu.qna.dialog')).to.be.true
@@ -758,7 +758,7 @@ describe('luis:build create multiple applications successfully when input is a f
758758

759759
test
760760
.stdout()
761-
.command(['luis:build', '--in', './test/fixtures/testcases/lubuild/foo/lufiles', '--authoringKey', uuidv1(), '--botName', 'test', '--dialog', 'multiLanguage', '--out', './results', '--log', '--suffix', 'development'])
761+
.command(['luis:build', '--in', './test/fixtures/testcases/lubuild/foo/lufiles', '--authoringKey', uuidv1(), '--botName', 'test', '--dialog', 'multiLanguage', '--out', './results', '--log', '--suffix', 'development', '--directVersionPublish'])
762762
.it('should create multiple applications and write dialog and settings assets successfully when input is a folder', async ctx => {
763763
expect(ctx.stdout).to.contain('foo.fr-fr.lu loaded')
764764
expect(ctx.stdout).to.contain('foo.lu loaded')
@@ -903,7 +903,7 @@ describe('luis:build update application succeed with parameters set from luconfi
903903

904904
test
905905
.stdout()
906-
.command(['luis:build', '--authoringKey', uuidv1(), '--luConfig', './test/fixtures/testcases/lubuild/luconfig/lufiles/luconfig.json', '--log', '--suffix', 'development'])
906+
.command(['luis:build', '--authoringKey', uuidv1(), '--luConfig', './test/fixtures/testcases/lubuild/luconfig/lufiles/luconfig.json', '--log', '--suffix', 'development', '--directVersionPublish'])
907907
.it('should update a luis application when utterances changed', async ctx => {
908908
expect(ctx.stdout).to.contain('Handling applications...')
909909
expect(ctx.stdout).to.contain('creating version=0.2')
@@ -1139,7 +1139,7 @@ describe('luis:build write dialog and settings assets successfully if schema is
11391139

11401140
test
11411141
.stdout()
1142-
.command(['luis:build', '--in', './test/fixtures/testcases/lubuild/sandwich/lufiles/sandwich.en-us.lu', '--authoringKey', uuidv1(), '--botName', 'test', '--out', './results', '--log', '--suffix', 'development', '--dialog', 'crosstrained', '--schema', 'https://raw.githubusercontent.com/microsoft/BotFramework-Composer/stable/Composer/packages/server/schemas/sdk.schema'])
1142+
.command(['luis:build', '--in', './test/fixtures/testcases/lubuild/sandwich/lufiles/sandwich.en-us.lu', '--authoringKey', uuidv1(), '--botName', 'test', '--out', './results', '--log', '--suffix', 'development', '--dialog', 'crosstrained', '--schema', 'https://raw.githubusercontent.com/microsoft/BotFramework-Composer/stable/Composer/packages/server/schemas/sdk.schema', '--directVersionPublish'])
11431143
.it('should write dialog and settings assets successfully if schema is specified', async ctx => {
11441144
expect(await compareFiles('./../../../results/luis.settings.development.westus.json', './../../fixtures/testcases/lubuild/sandwich/config/luis.settings.development.westus.json')).to.be.true
11451145
expect(await compareFiles('./../../../results/sandwich.en-us.lu.dialog', './../../fixtures/testcases/lubuild/sandwich/dialogs-with-schema/sandwich.en-us.lu.dialog')).to.be.true
@@ -1197,7 +1197,7 @@ describe('luis:build write dialog and settings assets successfully when empty fi
11971197

11981198
test
11991199
.stdout()
1200-
.command(['luis:build', '--in', './test/fixtures/testcases/lubuild/empty-file/lufiles', '--authoringKey', uuidv1(), '--botName', 'test', '--dialog', 'crosstrained', '--out', './results', '--log', '--suffix', 'development'])
1200+
.command(['luis:build', '--in', './test/fixtures/testcases/lubuild/empty-file/lufiles', '--authoringKey', uuidv1(), '--botName', 'test', '--dialog', 'crosstrained', '--out', './results', '--log', '--suffix', 'development', '--directVersionPublish'])
12011201
.it('should write dialog and settings assets successfully when empty files exist', async ctx => {
12021202
expect(ctx.stdout).to.contain('empty.lu loaded')
12031203
expect(ctx.stdout).to.contain('non-empty.lu loaded')
@@ -1249,14 +1249,51 @@ describe('luis:build write settings assets only successfully if --dialog is not
12491249

12501250
test
12511251
.stdout()
1252-
.command(['luis:build', '--in', './test/fixtures/testcases/lubuild/sandwich/lufiles/sandwich.en-us.lu', '--authoringKey', uuidv1(), '--botName', 'test', '--out', './results', '--log', '--suffix', 'development'])
1252+
.command(['luis:build', '--in', './test/fixtures/testcases/lubuild/sandwich/lufiles/sandwich.en-us.lu', '--authoringKey', uuidv1(), '--botName', 'test', '--out', './results', '--log', '--suffix', 'development', '--directVersionPublish'])
12531253
.it('should write settings assets only successfully if --dialog is not set', async ctx => {
12541254
expect(await compareFiles('./../../../results/luis.settings.development.westus.json', './../../fixtures/testcases/lubuild/sandwich/config/luis.settings.development.westus.json')).to.be.true
12551255
expect(await compareFiles('./../../../results/sandwich.lu.qna.dialog', './../../fixtures/testcases/lubuild/sandwich/dialogs/sandwich.lu.qna.dialog')).to.be.false
12561256
expect(await compareFiles('./../../../results/sandwich.lu.dialog', './../../fixtures/testcases/lubuild/sandwich/dialogs/sandwich.lu.dialog')).to.be.false
12571257
})
12581258
})
12591259

1260+
describe('luis:build write settings assets without version if --directVersionPublish is absent', () => {
1261+
const existingLuisApp = require('./../../fixtures/testcases/lubuild/sandwich/luis/test(development)-sandwich.en-us.lu.json')
1262+
before(async function () {
1263+
await fs.ensureDir(path.join(__dirname, './../../../results/'))
1264+
1265+
nock('https://westus.api.cognitive.microsoft.com')
1266+
.get(uri => uri.includes('apps'))
1267+
.reply(200, [{
1268+
name: 'test(development)-sandwich.en-us.lu',
1269+
id: 'f8c64e2a-8635-3a09-8f78-39d7adc76ec5'
1270+
}])
1271+
1272+
nock('https://westus.api.cognitive.microsoft.com')
1273+
.get(uri => uri.includes('apps'))
1274+
.reply(200, {
1275+
name: 'test(development)-sandwich.en-us.lu',
1276+
id: 'f8c64e2a-8635-3a09-8f78-39d7adc76ec5',
1277+
activeVersion: '0.1'
1278+
})
1279+
1280+
nock('https://westus.api.cognitive.microsoft.com')
1281+
.get(uri => uri.includes('export'))
1282+
.reply(200, existingLuisApp)
1283+
})
1284+
1285+
after(async function () {
1286+
await fs.remove(path.join(__dirname, './../../../results/'))
1287+
})
1288+
1289+
test
1290+
.stdout()
1291+
.command(['luis:build', '--in', './test/fixtures/testcases/lubuild/sandwich/lufiles/sandwich.en-us.lu', '--authoringKey', uuidv1(), '--botName', 'test', '--out', './results', '--log', '--suffix', 'development'])
1292+
.it('should write settings assets without version info when --directVersionPublish is absent', async ctx => {
1293+
expect(await compareFiles('./../../../results/luis.settings.development.westus.json', './../../fixtures/testcases/lubuild/sandwich/config/luis.settings.development_no_version.westus.config')).to.be.true
1294+
})
1295+
})
1296+
12601297
describe('luis:build throw luis build failed exception successfully', () => {
12611298
before(function () {
12621299
nock('https://westus.api.cognitive.microsoft.com')
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"luis": {
3+
"sandwich_en_us_lu": {
4+
"appId": "f8c64e2a-8635-3a09-8f78-39d7adc76ec5"
5+
}
6+
}
7+
}

0 commit comments

Comments
 (0)