- Migrated all pages from Next.js to Astro - Added PDPA-compliant Privacy Policy (Thai) - Added PDPA-compliant Terms & Conditions (Thai) - Added Cookie Policy with disclosure (Thai) - Implemented cookie consent banner (client-side) - Integrated Umami Analytics placeholder - Blog system with 3 posts - Optimized Docker configuration for production - Static site build (184KB, 11 pages) - Ready for Easypanel deployment Backup: /Users/kunthawatgreethong/Gitea/dealplustech-backup-nextjs-20260309.tar.gz
54 lines
1.4 KiB
JavaScript
54 lines
1.4 KiB
JavaScript
/*jshint indent:2, laxcomma:true, laxbreak:true*/
|
|
var util = require('util')
|
|
, assert = require('assert')
|
|
, diff = require('..')
|
|
, data = require('./practice-data')
|
|
;
|
|
|
|
var i = Math.floor(Math.random() * data.length) + 1;
|
|
var j = Math.floor(Math.random() * data.length) + 1;
|
|
|
|
while (j === i) {
|
|
j = Math.floor(Math.random() * data.length) + 1;
|
|
}
|
|
|
|
var source = data[i];
|
|
var comparand = data[j];
|
|
|
|
// source and comparand are different objects
|
|
assert.notEqual(source, comparand);
|
|
|
|
// source and comparand have differences in their structure
|
|
assert.notDeepEqual(source, comparand);
|
|
|
|
// record the differences between source and comparand
|
|
var changes = diff(source, comparand);
|
|
|
|
// apply the changes to the source
|
|
changes.forEach(function (change) {
|
|
diff.applyChange(source, true, change);
|
|
});
|
|
|
|
// source and copmarand are now deep equal
|
|
assert.deepEqual(source, comparand);
|
|
|
|
// Simulate serializing to a remote copy of the object (we've already go a copy, copy the changes)...
|
|
|
|
var remote = JSON.parse(JSON.stringify(source));
|
|
var remoteChanges = JSON.parse(JSON.stringify(changes));
|
|
|
|
// source and remote are different objects
|
|
assert.notEqual(source, remote);
|
|
|
|
// changes and remote changes are different objects
|
|
assert.notEqual(changes, remoteChanges);
|
|
|
|
// remote and comparand are different objects
|
|
assert.notEqual(remote, comparand);
|
|
|
|
remoteChanges.forEach(function (change) {
|
|
diff.applyChange(remote, true, change);
|
|
});
|
|
|
|
assert.deepEqual(remote, comparand);
|