Skip to content

Commit

Permalink
code cleanup and tests started
Browse files Browse the repository at this point in the history
  • Loading branch information
dzsquared committed Jun 14, 2024
1 parent 01a8921 commit 6c10417
Show file tree
Hide file tree
Showing 6 changed files with 141 additions and 121 deletions.
4 changes: 2 additions & 2 deletions __tests__/AzureSqlAction.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jest.mock('fs');

describe('AzureSqlAction tests', () => {
afterEach(() => {
jest.restoreAllMocks();
jest.restoreAllMocks();
});

describe('validate sqlpackage calls for DacpacAction', () => {
Expand Down Expand Up @@ -242,7 +242,7 @@ function getInputs(actionType: ActionType, connectionString: string = ''): IActi
* @param additionalArguments Additional arguments for this action type.
* @returns An ActionInputs objects based on the given action type.
*/
function getInputsWithCustomSqlPackageAction(actionType: ActionType, sqlpackageAction: SqlPackageAction, additionalArguments: string = ''): IActionInputs {
export function getInputsWithCustomSqlPackageAction(actionType: ActionType, sqlpackageAction: SqlPackageAction, additionalArguments: string = ''): IActionInputs {
const defaultConnectionConfig = new SqlConnectionConfig('Server=testServer.database.windows.net;Initial Catalog=testDB;User Id=testUser;Password=placeholder');

switch(actionType) {
Expand Down
62 changes: 62 additions & 0 deletions __tests__/AzureSqlActionHelper.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
import * as fs from 'fs';
import * as semver from 'semver';
import AzureSqlActionHelper from "../src/AzureSqlActionHelper";
import AzureSqlAction, { IBuildAndPublishInputs, IDacpacActionInputs, ActionType, SqlPackageAction, IActionInputs } from "../src/AzureSqlAction";
import { getInputsWithCustomSqlPackageAction } from './AzureSqlAction.test';

jest.mock('fs');

describe('AzureSqlActionHelper tests', () => {
afterEach(() => {
jest.restoreAllMocks();
});

const versions = [ // returned from sqlpackage, validated version expected
['162.3.563.1', '162.3.563'], // GA version
['162.4.101.0', '162.4.101'], // GA version
['162.3.562-preview', '162.3.562'], // preview version
['15.0.5164.1', '15.0.5164'] // old version
];

// checks parsing logic used from semver
describe('tests semver parsing for potential sqlpackage version values', () => {
it.each(versions)('should parse %s version correctly', (versionReturned, versionExpected) => {
let semverExpected = semver.coerce(versionExpected);
let semverTested = semver.coerce(versionReturned);

expect(semverTested).toEqual(semverExpected);
});
});

// checks sorting logic used from semver
describe('tests sorting of versions to select latest version', () => {
it('should select latest version', () => {
let versionArray: semver.SemVer[] = [];
versions.forEach(([versionReturned, versionExpected]) => {
versionArray.push(semver.coerce(versionReturned) ?? new semver.SemVer('0.0.0'));
});

let latestVersion = semver.rsort(versionArray)[0];
let latestVersionExpected = semver.coerce(versions[1][1]);

expect(latestVersion).toEqual(latestVersionExpected);
});
});


// ensures the sqlpackagepath input overrides the version check
describe('sqlpackagepath input should override version check', () => {
const sqlpackagepaths = ['//custom/path/to/sqlpackage', 'c:/Program Files/Sqlpackage/sqlpackage'];
it.each(sqlpackagepaths)('should return sqlpackagepath if provided', (path) => {
let inputs = getInputsWithCustomSqlPackageAction(ActionType.DacpacAction, SqlPackageAction['Publish'], '') as IDacpacActionInputs;
inputs.sqlpackagePath = path;

jest.spyOn(fs, "existsSync").mockReturnValue(true);
let sqlpackagePath = AzureSqlActionHelper.getSqlPackagePath(inputs);

expect(sqlpackagePath).toEqual(path);
});
});

});

2 changes: 1 addition & 1 deletion lib/main.js

Large diffs are not rendered by default.

122 changes: 36 additions & 86 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
"@types/jest": "^24.0.13",
"@types/mssql": "^8.0.0",
"@types/node": "^12.0.4",
"@types/semver": "^7.5.8",
"@types/uuid": "^3.4.4",
"@types/winreg": "^1.2.30",
"jest": "^29.7.0",
Expand Down
Loading

0 comments on commit 6c10417

Please sign in to comment.