From cbdbf2ccc1cbe4cbeb469a6bea585a243e27f8ff Mon Sep 17 00:00:00 2001 From: Bartosz Sypytkowski Date: Fri, 30 Jun 2023 13:43:28 +0200 Subject: [PATCH] fixed remaining weak link tests --- tests/y-weak-links.tests.js | 56 +++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 15 deletions(-) diff --git a/tests/y-weak-links.tests.js b/tests/y-weak-links.tests.js index 56c2146d..679a8886 100644 --- a/tests/y-weak-links.tests.js +++ b/tests/y-weak-links.tests.js @@ -332,7 +332,7 @@ export const testDeepObserveMap = tc => { /** * @param {t.TestCase} tc */ -const testDeepObserveArray = tc => { //FIXME +export const testDeepObserveArray = tc => { //FIXME // test observers in a face of linked chains of values const doc = new Y.Doc() /* @@ -346,17 +346,30 @@ const testDeepObserveArray = tc => { //FIXME const map = doc.getMap('map') const array = doc.getArray('array') - /** - * @type {Array} - */ - let events = [] - array.observeDeep((e) => events = e) - const nested = new Y.Map() map.set('nested', nested) const link = map.link('nested') array.insert(0, [link]) + /** + * @type {Array} + */ + let events = [] + array.observeDeep((evts) => { + events = [] + for (let e of evts) { + switch (e.constructor) { + case Y.YMapEvent: + events.push({target: e.target, keys: e.keys}) + break; + case Y.YWeakLinkEvent: + events.push({target: e.target}) + break; + default: throw new Error('unexpected event type ' + e.constructor) + } + } + }) + // update entry in linked map events = [] nested.set('key', 'value') @@ -367,24 +380,23 @@ const testDeepObserveArray = tc => { //FIXME nested.set('key', 'value2') t.compare(events.length, 1) t.compare(events[0].target, nested) - t.compare(events[0].keys, new Map([['key', {action:'update', oldValue: undefined}]])) + t.compare(events[0].keys, new Map([['key', {action:'update', oldValue: 'value'}]])) // delete entry in linked map nested.delete('key') t.compare(events.length, 1) t.compare(events[0].target, nested) - t.compare(events[0].keys, new Map([['key', {action:'delete', oldValue: undefined}]])) + t.compare(events[0].keys, new Map([['key', {action:'delete', oldValue: 'value2'}]])) // delete linked map map.delete('nested') t.compare(events.length, 1) - t.compare(events[0].target, map) - t.compare(events[0].keys, new Map([['nested', {action:'delete', oldValue: undefined}]])) + t.compare(events[0].target, link) } /** * @param {t.TestCase} tc */ -const testMapDeepObserve = tc => { //FIXME +export const testMapDeepObserve = tc => { //FIXME const doc = new Y.Doc() const outer = doc.getMap('outer') const inner = new Y.Map() @@ -394,7 +406,21 @@ const testMapDeepObserve = tc => { //FIXME * @type {Array} */ let events = [] - outer.observeDeep((e) => events = e) + outer.observeDeep((evts) => { + events = [] + for (let e of evts) { + switch (e.constructor) { + case Y.YMapEvent: + events.push({target: e.target, keys: e.keys}) + break; + case Y.YWeakLinkEvent: + events.push({target: e.target}) + break; + default: throw new Error('unexpected event type ' + e.constructor) + } + } + }) + inner.set('key', 'value1') t.compare(events.length, 1) @@ -405,13 +431,13 @@ const testMapDeepObserve = tc => { //FIXME inner.set('key', 'value2') t.compare(events.length, 1) t.compare(events[0].target, inner) - t.compare(events[0].keys, new Map([['key', {action:'update', oldValue: undefined}]])) + t.compare(events[0].keys, new Map([['key', {action:'update', oldValue: 'value1'}]])) events = [] inner.delete('key') t.compare(events.length, 1) t.compare(events[0].target, inner) - t.compare(events[0].keys, new Map([['key', {action:'delete', oldValue: undefined}]])) + t.compare(events[0].keys, new Map([['key', {action:'delete', oldValue: 'value2'}]])) } /**