From adcc81ba52cd0a40bcfe535e222a9f7789f28283 Mon Sep 17 00:00:00 2001 From: Manuel Wiedenmann Date: Sun, 8 Apr 2018 02:27:56 +0200 Subject: [PATCH] Move tests --- .../kredits/serializers/contribution-test.js | 43 ++++++++++++++ tests/unit/models/proposal-test.js | 57 +++---------------- 2 files changed, 51 insertions(+), 49 deletions(-) create mode 100644 tests/unit/lib/kredits/serializers/contribution-test.js diff --git a/tests/unit/lib/kredits/serializers/contribution-test.js b/tests/unit/lib/kredits/serializers/contribution-test.js new file mode 100644 index 0000000..5069a13 --- /dev/null +++ b/tests/unit/lib/kredits/serializers/contribution-test.js @@ -0,0 +1,43 @@ +import { module, test } from 'ember-qunit'; +import schemas from 'npm:kosmos-schemas'; +import tv4 from 'npm:tv4'; +import { ContributionSerializer } from 'kredits-web/lib/kredits'; + +module('Serializers contribution'); + +test('#serialize returns a valid JSON-LD representation', function(assert) { + let serialized = ContributionSerializer.serialize({ + recipientAddress: '0xd4a64570b12da659ee4bbd41c3509b7b1f9c51ac', + kind: 'design', + description: 'New logo design', + url: 'http://opensourcedesign.org', + contributorIpfsHash: 'QmT2A7rY4e7uoKktkcFHQNN7BD1oXdZTgd8wNkr1u9nNVE' + }); + + let valid = tv4.validate(JSON.parse(serialized), schemas['contribution']); + assert.ok(valid); +}); + +test('#deserialize returns a valid object representation', function(assert) { + let json = JSON.stringify({ + "@context": "https://schema.kosmos.org", + "@type": "Contribution", + "contributor": { + "ipfs": "QmT2A7rY4e7uoKktkcFHQNN7BD1oXdZTgd8wNkr1u9nNVE" + }, + "kind": "design", + "description": "New logo design", + "details": {}, + "url": "http://opensourcedesign.org" + }); + let deserialized = ContributionSerializer.deserialize(json); + + let expected = { + kind: 'design', + description: 'New logo design', + details: {}, + url: 'http://opensourcedesign.org', + ipfsData: json, + }; + assert.deepEqual(expected, deserialized); +}); diff --git a/tests/unit/models/proposal-test.js b/tests/unit/models/proposal-test.js index 023708b..acc9659 100644 --- a/tests/unit/models/proposal-test.js +++ b/tests/unit/models/proposal-test.js @@ -1,49 +1,8 @@ -import { moduleFor, test } from 'ember-qunit'; -import schemas from 'npm:kosmos-schemas'; -import tv4 from 'npm:tv4'; - -moduleFor('model:proposal', 'Unit | Model | proposal'); - -test('#toJSON() requires a recipient profile IPFS hash to be set', function(assert) { - let model = this.subject(); - - model.setProperties({ - recipientAddress: '0xd4a64570b12da659ee4bbd41c3509b7b1f9c51ac' - }); - - try { - let json = model.contributionToJSON(); - assert.notOk(json, true); - } catch(e) { - assert.ok(e.message.match(/IPFS hash .* missing/i)); - } -}); - -test('#toJSON() requires kind and description to be set', function(assert) { - let model = this.subject(); - - model.setProperties({ - recipientProfile: 'QmT2A7rY4e7uoKktkcFHQNN7BD1oXdZTgd8wNkr1u9nNVE' - }); - - try { - let json = model.contributionToJSON(); - assert.notOk(json, true); - } catch(e) { - assert.ok(e.message.match(/Missing .* kind.*description/i)); - } -}); - -test('#toJSON() returns a valid JSON-LD representation of the model', function(assert) { - let model = this.subject(); - - model.setProperties({ - recipientAddress: '0xd4a64570b12da659ee4bbd41c3509b7b1f9c51ac', - kind: 'design', - description: 'New logo design', - url: 'http://opensourcedesign.org', - recipientProfile: 'QmT2A7rY4e7uoKktkcFHQNN7BD1oXdZTgd8wNkr1u9nNVE' - }); - - assert.ok(tv4.validate(model.contributionToJSON(), schemas['contribution'])); -}); +// import { moduleFor, test } from 'ember-qunit'; +// +// moduleFor('model:proposal', 'Unit | Model | proposal'); +// +// test('contributor relation', function(assert) { +// // TODO: Test contributor relation +// assert.ok(true); +// });