'use strict';

import Fabric from '../';

const assert = require('assert');
const expect = require('chai').expect;

const widget = require('../data/widget');

describe('Resource', function () {
  it('should expose a constructor', function () {
    assert.equal(typeof Fabric.Resource, 'function');
  });

  it('should initialize a known Resource', async function () {
    let resource = new Fabric.Resource(widget);
    let store = new Fabric.Store();

    await store.open();

    try {
      resource.trust(store);
      let test = await resource.create({
        name: 'Wobbler'
      });

      assert.ok(test);
    } catch (E) {
      console.error(E);
    }

    await store.close();
  });

  it('should call query() smoothly', async function () {
    let resource = new Fabric.Resource(widget);
    let store = new Fabric.Store();

    await store.open();

    try {
      resource.trust(store);
      let test = await resource.create({
        name: 'Wobbler'
      });

      let results = await resource.query();

      assert.ok(test);
      assert.ok(results);

      assert.equal(results.length, 1);
    } catch (E) {
      console.error(E);
    }

    await store.close();
  });
});

'use strict';

import Fabric from '../';

const assert = require('assert');
const expect = require('chai').expect;

const widget = require('../data/widget');

describe('Resource', function () {
  it('should expose a constructor', function () {
    assert.equal(typeof Fabric.Resource, 'function');
  });

  it('should initialize a known Resource', async function () {
    let resource = new Fabric.Resource(widget);
    let store = new Fabric.Store();

    await store.open();

    try {
      resource.trust(store);
      let test = await resource.create({
        name: 'Wobbler'
      });

      assert.ok(test);
    } catch (E) {
      console.error(E);
    }

    await store.close();
  });
});

--- 
+++ 
@@ -31,4 +31,29 @@
 
     await store.close();
   });
+
+  it('should call query() smoothly', async function () {
+    let resource = new Fabric.Resource(widget);
+    let store = new Fabric.Store();
+
+    await store.open();
+
+    try {
+      resource.trust(store);
+      let test = await resource.create({
+        name: 'Wobbler'
+      });
+
+      let results = await resource.query();
+
+      assert.ok(test);
+      assert.ok(results);
+
+      assert.equal(results.length, 1);
+    } catch (E) {
+      console.error(E);
+    }
+
+    await store.close();
+  });
 });
Add query() test for Resource
