mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
fix intermittent sql database project test failure (#13114)
This commit is contained in:
@@ -588,36 +588,36 @@ export class Project {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private addSystemDatabaseReferenceToProjFile(entry: SystemDatabaseReferenceProjectEntry): void {
|
private async addSystemDatabaseReferenceToProjFile(entry: SystemDatabaseReferenceProjectEntry): Promise<void> {
|
||||||
const systemDbReferenceNode = this.projFileXmlDoc.createElement(constants.ArtifactReference);
|
const systemDbReferenceNode = this.projFileXmlDoc.createElement(constants.ArtifactReference);
|
||||||
|
|
||||||
// if it's a system database reference, we'll add an additional node with the SSDT location of the dacpac later
|
// if it's a system database reference, we'll add an additional node with the SSDT location of the dacpac later
|
||||||
systemDbReferenceNode.setAttribute(constants.Condition, constants.NetCoreCondition);
|
systemDbReferenceNode.setAttribute(constants.Condition, constants.NetCoreCondition);
|
||||||
systemDbReferenceNode.setAttribute(constants.Include, entry.pathForSqlProj());
|
systemDbReferenceNode.setAttribute(constants.Include, entry.pathForSqlProj());
|
||||||
this.addDatabaseReferenceChildren(systemDbReferenceNode, entry);
|
await this.addDatabaseReferenceChildren(systemDbReferenceNode, entry);
|
||||||
this.findOrCreateItemGroup(constants.ArtifactReference).appendChild(systemDbReferenceNode);
|
this.findOrCreateItemGroup(constants.ArtifactReference).appendChild(systemDbReferenceNode);
|
||||||
|
|
||||||
// add a reference to the system dacpac in SSDT if it's a system db
|
// add a reference to the system dacpac in SSDT if it's a system db
|
||||||
const ssdtReferenceNode = this.projFileXmlDoc.createElement(constants.ArtifactReference);
|
const ssdtReferenceNode = this.projFileXmlDoc.createElement(constants.ArtifactReference);
|
||||||
ssdtReferenceNode.setAttribute(constants.Condition, constants.NotNetCoreCondition);
|
ssdtReferenceNode.setAttribute(constants.Condition, constants.NotNetCoreCondition);
|
||||||
ssdtReferenceNode.setAttribute(constants.Include, entry.ssdtPathForSqlProj());
|
ssdtReferenceNode.setAttribute(constants.Include, entry.ssdtPathForSqlProj());
|
||||||
this.addDatabaseReferenceChildren(ssdtReferenceNode, entry);
|
await this.addDatabaseReferenceChildren(ssdtReferenceNode, entry);
|
||||||
this.findOrCreateItemGroup(constants.ArtifactReference).appendChild(ssdtReferenceNode);
|
this.findOrCreateItemGroup(constants.ArtifactReference).appendChild(ssdtReferenceNode);
|
||||||
}
|
}
|
||||||
|
|
||||||
private addDatabaseReferenceToProjFile(entry: IDatabaseReferenceProjectEntry): void {
|
private async addDatabaseReferenceToProjFile(entry: IDatabaseReferenceProjectEntry): Promise<void> {
|
||||||
if (entry instanceof SystemDatabaseReferenceProjectEntry) {
|
if (entry instanceof SystemDatabaseReferenceProjectEntry) {
|
||||||
this.addSystemDatabaseReferenceToProjFile(<SystemDatabaseReferenceProjectEntry>entry);
|
await this.addSystemDatabaseReferenceToProjFile(<SystemDatabaseReferenceProjectEntry>entry);
|
||||||
} else if (entry instanceof SqlProjectReferenceProjectEntry) {
|
} else if (entry instanceof SqlProjectReferenceProjectEntry) {
|
||||||
const referenceNode = this.projFileXmlDoc.createElement(constants.ProjectReference);
|
const referenceNode = this.projFileXmlDoc.createElement(constants.ProjectReference);
|
||||||
referenceNode.setAttribute(constants.Include, entry.pathForSqlProj());
|
referenceNode.setAttribute(constants.Include, entry.pathForSqlProj());
|
||||||
this.addProjectReferenceChildren(referenceNode, <SqlProjectReferenceProjectEntry>entry);
|
this.addProjectReferenceChildren(referenceNode, <SqlProjectReferenceProjectEntry>entry);
|
||||||
this.addDatabaseReferenceChildren(referenceNode, entry);
|
await this.addDatabaseReferenceChildren(referenceNode, entry);
|
||||||
this.findOrCreateItemGroup(constants.ProjectReference).appendChild(referenceNode);
|
this.findOrCreateItemGroup(constants.ProjectReference).appendChild(referenceNode);
|
||||||
} else {
|
} else {
|
||||||
const referenceNode = this.projFileXmlDoc.createElement(constants.ArtifactReference);
|
const referenceNode = this.projFileXmlDoc.createElement(constants.ArtifactReference);
|
||||||
referenceNode.setAttribute(constants.Include, entry.pathForSqlProj());
|
referenceNode.setAttribute(constants.Include, entry.pathForSqlProj());
|
||||||
this.addDatabaseReferenceChildren(referenceNode, entry);
|
await this.addDatabaseReferenceChildren(referenceNode, entry);
|
||||||
this.findOrCreateItemGroup(constants.ArtifactReference).appendChild(referenceNode);
|
this.findOrCreateItemGroup(constants.ArtifactReference).appendChild(referenceNode);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -631,7 +631,7 @@ export class Project {
|
|||||||
return found;
|
return found;
|
||||||
}
|
}
|
||||||
|
|
||||||
private addDatabaseReferenceChildren(referenceNode: any, entry: IDatabaseReferenceProjectEntry): void {
|
private async addDatabaseReferenceChildren(referenceNode: any, entry: IDatabaseReferenceProjectEntry): Promise<void> {
|
||||||
const suppressMissingDependenciesErrorNode = this.projFileXmlDoc.createElement(constants.SuppressMissingDependenciesErrors);
|
const suppressMissingDependenciesErrorNode = this.projFileXmlDoc.createElement(constants.SuppressMissingDependenciesErrors);
|
||||||
const suppressMissingDependenciesErrorTextNode = this.projFileXmlDoc.createTextNode(entry.suppressMissingDependenciesErrors ? constants.True : constants.False);
|
const suppressMissingDependenciesErrorTextNode = this.projFileXmlDoc.createTextNode(entry.suppressMissingDependenciesErrors ? constants.True : constants.False);
|
||||||
suppressMissingDependenciesErrorNode.appendChild(suppressMissingDependenciesErrorTextNode);
|
suppressMissingDependenciesErrorNode.appendChild(suppressMissingDependenciesErrorTextNode);
|
||||||
@@ -644,7 +644,7 @@ export class Project {
|
|||||||
referenceNode.appendChild(databaseSqlCmdVariableElement);
|
referenceNode.appendChild(databaseSqlCmdVariableElement);
|
||||||
|
|
||||||
// add SQLCMD variable
|
// add SQLCMD variable
|
||||||
this.addSqlCmdVariable((<DacpacReferenceProjectEntry>entry).databaseSqlCmdVariable!, (<DacpacReferenceProjectEntry>entry).databaseVariableLiteralValue!);
|
await this.addSqlCmdVariable((<DacpacReferenceProjectEntry>entry).databaseSqlCmdVariable!, (<DacpacReferenceProjectEntry>entry).databaseVariableLiteralValue!);
|
||||||
} else if (entry.databaseVariableLiteralValue) {
|
} else if (entry.databaseVariableLiteralValue) {
|
||||||
const databaseVariableLiteralValueElement = this.projFileXmlDoc.createElement(constants.DatabaseVariableLiteralValue);
|
const databaseVariableLiteralValueElement = this.projFileXmlDoc.createElement(constants.DatabaseVariableLiteralValue);
|
||||||
const databaseTextNode = this.projFileXmlDoc.createTextNode(entry.databaseVariableLiteralValue);
|
const databaseTextNode = this.projFileXmlDoc.createTextNode(entry.databaseVariableLiteralValue);
|
||||||
@@ -659,7 +659,7 @@ export class Project {
|
|||||||
referenceNode.appendChild(serverSqlCmdVariableElement);
|
referenceNode.appendChild(serverSqlCmdVariableElement);
|
||||||
|
|
||||||
// add SQLCMD variable
|
// add SQLCMD variable
|
||||||
this.addSqlCmdVariable((<DacpacReferenceProjectEntry>entry).serverSqlCmdVariable!, (<DacpacReferenceProjectEntry>entry).serverName!);
|
await this.addSqlCmdVariable((<DacpacReferenceProjectEntry>entry).serverSqlCmdVariable!, (<DacpacReferenceProjectEntry>entry).serverName!);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -809,7 +809,7 @@ export class Project {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async addToProjFile(entry: ProjectEntry, xmlTag?: string) {
|
private async addToProjFile(entry: ProjectEntry, xmlTag?: string): Promise<void> {
|
||||||
switch (entry.type) {
|
switch (entry.type) {
|
||||||
case EntryType.File:
|
case EntryType.File:
|
||||||
this.addFileToProjFile((<FileProjectEntry>entry).relativePath, xmlTag ? xmlTag : constants.Build);
|
this.addFileToProjFile((<FileProjectEntry>entry).relativePath, xmlTag ? xmlTag : constants.Build);
|
||||||
@@ -818,7 +818,7 @@ export class Project {
|
|||||||
this.addFolderToProjFile((<FileProjectEntry>entry).relativePath);
|
this.addFolderToProjFile((<FileProjectEntry>entry).relativePath);
|
||||||
break;
|
break;
|
||||||
case EntryType.DatabaseReference:
|
case EntryType.DatabaseReference:
|
||||||
this.addDatabaseReferenceToProjFile(<IDatabaseReferenceProjectEntry>entry);
|
await this.addDatabaseReferenceToProjFile(<IDatabaseReferenceProjectEntry>entry);
|
||||||
break;
|
break;
|
||||||
case EntryType.SqlCmdVariable:
|
case EntryType.SqlCmdVariable:
|
||||||
this.addSqlCmdVariableToProjFile(<SqlCmdVariableProjectEntry>entry);
|
this.addSqlCmdVariableToProjFile(<SqlCmdVariableProjectEntry>entry);
|
||||||
|
|||||||
@@ -243,14 +243,14 @@ describe('ProjectsController', function (): void {
|
|||||||
sinon.stub(vscode.window, 'showWarningMessage').returns(<any>Promise.resolve(constants.yesString));
|
sinon.stub(vscode.window, 'showWarningMessage').returns(<any>Promise.resolve(constants.yesString));
|
||||||
|
|
||||||
// add dacpac reference
|
// add dacpac reference
|
||||||
proj.addDatabaseReference({
|
await proj.addDatabaseReference({
|
||||||
dacpacFileLocation: vscode.Uri.file('test2.dacpac'),
|
dacpacFileLocation: vscode.Uri.file('test2.dacpac'),
|
||||||
databaseName: 'test2DbName',
|
databaseName: 'test2DbName',
|
||||||
databaseVariable: 'test2Db',
|
databaseVariable: 'test2Db',
|
||||||
suppressMissingDependenciesErrors: false
|
suppressMissingDependenciesErrors: false
|
||||||
});
|
});
|
||||||
// add project reference
|
// add project reference
|
||||||
proj.addProjectReference({
|
await proj.addProjectReference({
|
||||||
projectName: 'project1',
|
projectName: 'project1',
|
||||||
projectGuid: '',
|
projectGuid: '',
|
||||||
projectRelativePath: vscode.Uri.file(path.join('..', 'project1', 'project1.sqlproj')),
|
projectRelativePath: vscode.Uri.file(path.join('..', 'project1', 'project1.sqlproj')),
|
||||||
|
|||||||
Reference in New Issue
Block a user