Skip to content
This repository was archived by the owner on Sep 30, 2024. It is now read-only.

Feature/84 deterministic ordering #143

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# Other
*.bak
coverage/
_sql-database/
/_sql-database/
dist/
node_modules/
ssc.json
Expand Down
35 changes: 31 additions & 4 deletions docker/index.spec.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,35 @@
const snapshot = require('../snapshots/AdventureWorks2017.json');
const cache = require('../_sql-database/cache.json');
import { readFileSync, statSync } from 'fs-extra';
import { glob } from 'glob';

describe('docker', () => {
it('cache should match snapshot', () => {
expect(cache).toEqual(snapshot);
it('file contents should match snapshots', () => {
const getAllFilenames = (folder: string): string[] => {
return glob.sync(folder + '**/*');
};

const snapshots = getAllFilenames(
'snapshots/AdventureWorks2017/_sql-database/'
);
const results = getAllFilenames('_sql-database/');

// Just in case the glob results aren't in a predictable order
snapshots.sort();
results.sort();

expect(snapshots.length).toEqual(results.length);

snapshots.map((snapshot, index) => {
const result = results[index];

expect(snapshot).toContain(result);

const stat = statSync(result);
if (stat.isFile()) {
const resultContent = readFileSync(result).toString();
const snapshotContent = readFileSync(snapshot).toString();

expect(resultContent).toEqual(snapshotContent);
}
});
});
});
36 changes: 18 additions & 18 deletions snapshots/AdventureWorks2017.json
Original file line number Diff line number Diff line change
Expand Up @@ -61,39 +61,39 @@
"./_sql-database/tables/dbo.DatabaseLog.sql": "9b20616aecea60d1132431f20dce0fde9afb31de",
"./_sql-database/tables/dbo.ErrorLog.sql": "6c739cf6b1b1aa3961fe170e7d0a0ae923231dc6",
"./_sql-database/tables/HumanResources.Department.sql": "4bf0595e675d1c71d990a77fc33d68c396b0d241",
"./_sql-database/tables/HumanResources.Employee.sql": "efb72f408a7abffb1f530000d5dcf5a2ff975df6",
"./_sql-database/tables/HumanResources.EmployeeDepartmentHistory.sql": "ef90daec320d2041e876901451e2eb67b509e014",
"./_sql-database/tables/HumanResources.Employee.sql": "869fd1a890dac547e5ac415b394af65bf5c2056d",
"./_sql-database/tables/HumanResources.EmployeeDepartmentHistory.sql": "2bce1ecb28ad83ec8e2fde23d5f53d1532e422c2",
"./_sql-database/tables/HumanResources.EmployeePayHistory.sql": "e678293368b54c34b83cfbdd5ed3dbedc44abbe8",
"./_sql-database/tables/HumanResources.JobCandidate.sql": "dd7d9e12a1ae830f413c842bbde6722060272232",
"./_sql-database/tables/HumanResources.Shift.sql": "5412bee432ceac402b6fd77c6ecf87aa625bb38f",
"./_sql-database/tables/Person.Address.sql": "68680d701dff19b65fef954f220a8533b307404b",
"./_sql-database/tables/Person.AddressType.sql": "8e5a5bfbf1e131930b4140e13093f24def40241a",
"./_sql-database/tables/Person.AddressType.sql": "db20ad02fef4d29f269ee2ad8f0145e9afc2cc93",
"./_sql-database/tables/Person.BusinessEntity.sql": "974a196e5c5b127d95e7f85f24ac45e04117684a",
"./_sql-database/tables/Person.BusinessEntityAddress.sql": "b8f0dc95ff96356fd546f88027be3ec2549694a5",
"./_sql-database/tables/Person.BusinessEntityContact.sql": "db00db36a8c305369614ccc5b928e8597e3b1cc2",
"./_sql-database/tables/Person.BusinessEntityContact.sql": "037f5207e4d2e6492cc7db5cfdfd47787cce72b5",
"./_sql-database/tables/Person.ContactType.sql": "ae76fd3b5a19761acd6957cc95ef81b23bbc0458",
"./_sql-database/tables/Person.CountryRegion.sql": "6dcb67e6e55ec55854090e164562551a42eb0880",
"./_sql-database/tables/Person.EmailAddress.sql": "e94818c21608b6c16059debc16f29a09befe0f99",
"./_sql-database/tables/Person.Password.sql": "a41a0ec2d9436debe18d14814320d64039a6571f",
"./_sql-database/tables/Person.Person.sql": "adfd8437559df08805009a01a639406d7a06c614",
"./_sql-database/tables/Person.Person.sql": "99b4a04c751bcfec7865a1d09b0e79861d5e1302",
"./_sql-database/tables/Person.PersonPhone.sql": "aa5de40c666f70eecfc40a3067bfe01de5c8e123",
"./_sql-database/tables/Person.PhoneNumberType.sql": "b3f1927d41efef70d3163b872248fe10d59a2836",
"./_sql-database/tables/Person.StateProvince.sql": "7282919a39b919cf793bd7d5ddbc20a817aa418d",
"./_sql-database/tables/Person.StateProvince.sql": "2b39fed01f057f53f21b420e37d3f033d214bbd9",
"./_sql-database/tables/Production.BillOfMaterials.sql": "7d64a3f1e814414b679f84a4dc68f33cdf3207c2",
"./_sql-database/tables/Production.Culture.sql": "669198dedd761006eab9c95d4c2787b81af382e7",
"./_sql-database/tables/Production.Document.sql": "944cbdb6e94631a1b6a40f646b5b2dc8e19944a7",
"./_sql-database/tables/Production.Document.sql": "1fc68a7ae8d1786ef7d4686bbd6798ef38c39fd5",
"./_sql-database/tables/Production.Illustration.sql": "b52688b6f9683af379664a18d369ec37aa0a876b",
"./_sql-database/tables/Production.Location.sql": "3925e29b56e538ac8a809e628e10bf131e88c510",
"./_sql-database/tables/Production.Product.sql": "6772a934c8b90450de2593cff0cf08f29badd71f",
"./_sql-database/tables/Production.Product.sql": "faf32aa3aa164bb969326142d0f4681a12bde5cd",
"./_sql-database/tables/Production.ProductCategory.sql": "fa70876299e8516c069f23fd487020382bb492dc",
"./_sql-database/tables/Production.ProductCostHistory.sql": "2f000a5d847fd588eb0e2731959497c116fe1766",
"./_sql-database/tables/Production.ProductDescription.sql": "53200ad11d1c00bb4c5aba33084a19f5d926610a",
"./_sql-database/tables/Production.ProductDocument.sql": "0bc9e98df535489220831e319911a3e91f37af84",
"./_sql-database/tables/Production.ProductInventory.sql": "7b7dd3eb81441b115f7dbd3653184b22d2884977",
"./_sql-database/tables/Production.ProductListPriceHistory.sql": "43a187a7830aecc7cac2c66679f65b0408812bd7",
"./_sql-database/tables/Production.ProductModel.sql": "45044e688a4df4b4145ef29b143ecacc0002d530",
"./_sql-database/tables/Production.ProductModelIllustration.sql": "a0fc4231412400c3778340c9bf591d3ef34bf9ad",
"./_sql-database/tables/Production.ProductModelProductDescriptionCulture.sql": "f7a4713f2c77236a2791f26ecc9e0951fcd2679b",
"./_sql-database/tables/Production.ProductModelIllustration.sql": "35702a9bfabb60d049e1b459e52ebcef6bf9f0ba",
"./_sql-database/tables/Production.ProductModelProductDescriptionCulture.sql": "18839f0e1271aaadfd042934b4c9b71355301eea",
"./_sql-database/tables/Production.ProductPhoto.sql": "d7b72993e64484f44bb8932ed4e80a353cff329a",
"./_sql-database/tables/Production.ProductProductPhoto.sql": "13698d2287e6db1afbd1bec573381e2227c6cadd",
"./_sql-database/tables/Production.ProductReview.sql": "85ef51696acecab21e2d2944f3e9af874c916a90",
Expand All @@ -102,23 +102,23 @@
"./_sql-database/tables/Production.TransactionHistory.sql": "9a09d00eb017ea790aea36dc2dabcb2f094ecf6f",
"./_sql-database/tables/Production.TransactionHistoryArchive.sql": "bfc3780f6a06bccb1855e0f80e95528729a1452a",
"./_sql-database/tables/Production.UnitMeasure.sql": "fa9d2d7d7f3765d3b4207f387a00da1017caa2c4",
"./_sql-database/tables/Production.WorkOrder.sql": "2bb7abe8a821dc1186acd6fb48089b7253d84cf5",
"./_sql-database/tables/Production.WorkOrder.sql": "32e16e3790fd167b5d3f95fb491d22f104df5217",
"./_sql-database/tables/Production.WorkOrderRouting.sql": "e8bc4941b895aed4a22d72e164149c55a36c00f1",
"./_sql-database/tables/Purchasing.ProductVendor.sql": "5679232c7304bedb60db966e179f2ef2295d98e3",
"./_sql-database/tables/Purchasing.ProductVendor.sql": "9da691fd0de7987569c2b89bb6e50a9590f5a673",
"./_sql-database/tables/Purchasing.PurchaseOrderDetail.sql": "82fe42908da1126989ce6ab95870717099922cac",
"./_sql-database/tables/Purchasing.PurchaseOrderHeader.sql": "77c76c3fdecbb4730a97a6d716eef6429478e2d5",
"./_sql-database/tables/Purchasing.PurchaseOrderHeader.sql": "613489231b1a0f1b3975c45a57269714107ccdbc",
"./_sql-database/tables/Purchasing.ShipMethod.sql": "5394f2981ad744a8dbaee1a2c38ab71147341b51",
"./_sql-database/tables/Purchasing.Vendor.sql": "ced603aa7c11d0fb9d08382789c418063b0e0edd",
"./_sql-database/tables/Sales.CountryRegionCurrency.sql": "5622b3c4f006221a6f12a30c4939445e9d9493c6",
"./_sql-database/tables/Sales.CreditCard.sql": "f4af312a986ea206311b2cfaa53594be33932cb1",
"./_sql-database/tables/Sales.Currency.sql": "fabf07099843b49440dcd19d8ba9ed1076c8f388",
"./_sql-database/tables/Sales.CurrencyRate.sql": "5d70f9ddae2217579f68385a51e87d383e22731f",
"./_sql-database/tables/Sales.Customer.sql": "05ef02be43fece57282fcbf4620ef784e77849f5",
"./_sql-database/tables/Sales.Customer.sql": "094a871031dca6359ee69d633e4650109e9fdc24",
"./_sql-database/tables/Sales.PersonCreditCard.sql": "d7ad3c50573afa566eea8b81d82c5e3a4cf893d0",
"./_sql-database/tables/Sales.SalesOrderDetail.sql": "f49f8e7285180f1fcb72d62bcb06a220f87c461f",
"./_sql-database/tables/Sales.SalesOrderHeader.sql": "73f740194dbd318306739fa19a9e7f9b61d32268",
"./_sql-database/tables/Sales.SalesOrderDetail.sql": "224f2c8fad11bd509ac433f0f44bb78134951dc8",
"./_sql-database/tables/Sales.SalesOrderHeader.sql": "f4bc38c4b80a9f2a3ba596d2cd964e3aa5a2c9c7",
"./_sql-database/tables/Sales.SalesOrderHeaderSalesReason.sql": "73ae5cd408599da33244513ad3b28b7e62c5c5e9",
"./_sql-database/tables/Sales.SalesPerson.sql": "eca6c6e1784db302f77ba4174d8309f1b531ab2f",
"./_sql-database/tables/Sales.SalesPerson.sql": "fa795cef613a61e4a054d97d52fe607bd9545d69",
"./_sql-database/tables/Sales.SalesPersonQuotaHistory.sql": "ef550aaf480d195cad77ee64012550d84bfc32f5",
"./_sql-database/tables/Sales.SalesReason.sql": "f96124a0f52cdd19f97c33c9509628910e3f7e04",
"./_sql-database/tables/Sales.SalesTaxRate.sql": "90a84223ccf918555e12b41dc88206dd27f11398",
Expand All @@ -127,7 +127,7 @@
"./_sql-database/tables/Sales.ShoppingCartItem.sql": "8206e8481d09d11bc70a9641da950455fe50e154",
"./_sql-database/tables/Sales.SpecialOffer.sql": "6a4dd953f1199f84324869d412ddc76b3783e85d",
"./_sql-database/tables/Sales.SpecialOfferProduct.sql": "d64c059bc3e4d7f6f5843f7c973d6d36f06100f9",
"./_sql-database/tables/Sales.Store.sql": "2df1f5fcafd6c96952bbebc30303810110c26d12",
"./_sql-database/tables/Sales.Store.sql": "e139180fa8ff7e7989842121398e4fd04405505b",
"./_sql-database/types/dbo.AccountNumber.sql": "055ec65e54884c34ea6cb9e054cf550744e6ad97",
"./_sql-database/types/dbo.Flag.sql": "79e7e65d23ae0f9c89855c28e7fa12e4ea58575e",
"./_sql-database/types/dbo.NameStyle.sql": "f6c4f576d12ee8d600a657f5a803a58932b0d2d5",
Expand Down
Loading