From d980a4e5282ee92312ccb5d531f6eca3e3f0a1d8 Mon Sep 17 00:00:00 2001 From: Devin Alexander Torres Date: Mon, 18 Dec 2017 17:09:31 -0600 Subject: [PATCH] feat: Add basic routes --- app/account/model.js | 2 +- app/ajax/service.js | 6 + app/application/adapter.js | 31 ++ app/application/serializer.js | 2 +- app/index/route.js | 3 + app/router.js | 4 + app/templates/application.hbs | 85 ++--- app/wallet/adapter.js | 4 + app/wallets/accounts/index/route.js | 4 + app/wallets/accounts/index/template.hbs | 2 + app/wallets/accounts/route.js | 4 + app/wallets/accounts/template.hbs | 1 + app/wallets/route.js | 8 + app/wallets/template.hbs | 1 + mirage/config.js | 6 +- mirage/factories/wallet.js | 4 - mirage/fixtures/account.js | 7 + mirage/models/wallet.js | 4 - mirage/scenarios/default.js | 4 +- mirage/serializers/application.js | 2 + package-lock.json | 345 ++++++++++++++++++ package.json | 2 + tests/unit/ajax/service-test.js | 12 + tests/unit/application/adapter-test.js | 12 + tests/unit/wallet/adapter-test.js | 12 + .../unit/wallets/accounts/index/route-test.js | 11 + tests/unit/wallets/accounts/route-test.js | 11 + tests/unit/wallets/route-test.js | 11 + 28 files changed, 545 insertions(+), 55 deletions(-) create mode 100644 app/ajax/service.js create mode 100644 app/application/adapter.js create mode 100644 app/wallet/adapter.js create mode 100644 app/wallets/accounts/index/route.js create mode 100644 app/wallets/accounts/index/template.hbs create mode 100644 app/wallets/accounts/route.js create mode 100644 app/wallets/accounts/template.hbs create mode 100644 app/wallets/route.js create mode 100644 app/wallets/template.hbs delete mode 100644 mirage/factories/wallet.js create mode 100644 mirage/fixtures/account.js delete mode 100644 mirage/models/wallet.js create mode 100644 tests/unit/ajax/service-test.js create mode 100644 tests/unit/application/adapter-test.js create mode 100644 tests/unit/wallet/adapter-test.js create mode 100644 tests/unit/wallets/accounts/index/route-test.js create mode 100644 tests/unit/wallets/accounts/route-test.js create mode 100644 tests/unit/wallets/route-test.js diff --git a/app/account/model.js b/app/account/model.js index ca6bd1b7..8f243dcc 100644 --- a/app/account/model.js +++ b/app/account/model.js @@ -1,5 +1,5 @@ import DS from 'ember-data'; export default DS.Model.extend({ - + balance: DS.attr() }); diff --git a/app/ajax/service.js b/app/ajax/service.js new file mode 100644 index 00000000..5547fdae --- /dev/null +++ b/app/ajax/service.js @@ -0,0 +1,6 @@ +import AjaxService from 'ember-ajax/services/ajax'; + +export default AjaxService.extend({ + namespace: '/rpc', + contentType: 'application/json; charset=utf-8' +}); diff --git a/app/application/adapter.js b/app/application/adapter.js new file mode 100644 index 00000000..2d54494e --- /dev/null +++ b/app/application/adapter.js @@ -0,0 +1,31 @@ +import DS from 'ember-data'; +import { inject as service } from '@ember/service'; + +export default DS.Adapter.extend({ + namespace: 'rpc', + + ajax: service(), + + findRecord(store, type, id, snapshot) { + // return new RSVP.Promise((resolve, reject) => { + // $.getJSON(`/${type.modelName}/${id}`).then(function(data) { + // resolve(data); + // }, function(jqXHR) { + // reject(jqXHR); + // }); + // }); + + return this.get('ajax').request('/', { + method: 'POST', + dataType: 'json', + data: { + action: 'account_balance', + account: id + } + }).then((data) => { + const attrs = data; + attrs.id = id; + return attrs; + }); + } +}); diff --git a/app/application/serializer.js b/app/application/serializer.js index 74f0c81c..bae38ecf 100644 --- a/app/application/serializer.js +++ b/app/application/serializer.js @@ -1,4 +1,4 @@ import DS from 'ember-data'; -export default DS.Serializer.extend({ +export default DS.JSONSerializer.extend({ }); diff --git a/app/index/route.js b/app/index/route.js index 6c74252a..c1091b26 100644 --- a/app/index/route.js +++ b/app/index/route.js @@ -1,4 +1,7 @@ import Route from '@ember/routing/route'; export default Route.extend({ + redirect() { + this.transitionTo('wallets'); + } }); diff --git a/app/router.js b/app/router.js index d0bb0095..c585ed71 100644 --- a/app/router.js +++ b/app/router.js @@ -7,6 +7,10 @@ const Router = EmberRouter.extend({ }); Router.map(function() { + this.route('wallets', function() { + this.route('accounts', { path: '/:id' }, function() { + }); + }); }); export default Router; diff --git a/app/templates/application.hbs b/app/templates/application.hbs index cea38f24..98f5c3bf 100644 --- a/app/templates/application.hbs +++ b/app/templates/application.hbs @@ -1,46 +1,47 @@ {{!--
--}} -
-
- + +
+
+
+ {{outlet}} +
-
-
-
- {{outlet}} -
-
+ + {{!--
--}} diff --git a/app/wallet/adapter.js b/app/wallet/adapter.js new file mode 100644 index 00000000..34ddab76 --- /dev/null +++ b/app/wallet/adapter.js @@ -0,0 +1,4 @@ +import LSAdapter from 'ember-localstorage-adapter'; + +export default LSAdapter.extend({ +}); diff --git a/app/wallets/accounts/index/route.js b/app/wallets/accounts/index/route.js new file mode 100644 index 00000000..6c74252a --- /dev/null +++ b/app/wallets/accounts/index/route.js @@ -0,0 +1,4 @@ +import Route from '@ember/routing/route'; + +export default Route.extend({ +}); diff --git a/app/wallets/accounts/index/template.hbs b/app/wallets/accounts/index/template.hbs new file mode 100644 index 00000000..4041a172 --- /dev/null +++ b/app/wallets/accounts/index/template.hbs @@ -0,0 +1,2 @@ +Total Balance: {{model.balance}} +{{qr-code content=model.id}} \ No newline at end of file diff --git a/app/wallets/accounts/route.js b/app/wallets/accounts/route.js new file mode 100644 index 00000000..6c74252a --- /dev/null +++ b/app/wallets/accounts/route.js @@ -0,0 +1,4 @@ +import Route from '@ember/routing/route'; + +export default Route.extend({ +}); diff --git a/app/wallets/accounts/template.hbs b/app/wallets/accounts/template.hbs new file mode 100644 index 00000000..e2147cab --- /dev/null +++ b/app/wallets/accounts/template.hbs @@ -0,0 +1 @@ +{{outlet}} \ No newline at end of file diff --git a/app/wallets/route.js b/app/wallets/route.js new file mode 100644 index 00000000..1d3bb8a1 --- /dev/null +++ b/app/wallets/route.js @@ -0,0 +1,8 @@ +import Route from '@ember/routing/route'; + +export default Route.extend({ + redirect() { + const account = this.store.findRecord('account', 'xrb_1i8x3i4666yekktoc6sz5hcihegarxyrqx68hz6mhw3w61x6tghidatyioa7'); + this.transitionTo('wallets.accounts', account); + } +}); diff --git a/app/wallets/template.hbs b/app/wallets/template.hbs new file mode 100644 index 00000000..e2147cab --- /dev/null +++ b/app/wallets/template.hbs @@ -0,0 +1 @@ +{{outlet}} \ No newline at end of file diff --git a/mirage/config.js b/mirage/config.js index bbfd77f9..2edbb7c8 100644 --- a/mirage/config.js +++ b/mirage/config.js @@ -24,8 +24,10 @@ export default function() { http://www.ember-cli-mirage.com/docs/v0.3.x/shorthands/ */ - this.post('/rpc', (schema, request) => { + this.namespace = 'rpc'; + + this.post('/', (schema, request) => { const params = JSON.parse(request.requestBody); - return schema.wallet.create(params); + return schema.accounts.find(params.account); }); } diff --git a/mirage/factories/wallet.js b/mirage/factories/wallet.js deleted file mode 100644 index 85018979..00000000 --- a/mirage/factories/wallet.js +++ /dev/null @@ -1,4 +0,0 @@ -import { Factory } from 'ember-cli-mirage'; - -export default Factory.extend({ -}); diff --git a/mirage/fixtures/account.js b/mirage/fixtures/account.js new file mode 100644 index 00000000..565f844b --- /dev/null +++ b/mirage/fixtures/account.js @@ -0,0 +1,7 @@ +export default [ + { + id: 'xrb_1i8x3i4666yekktoc6sz5hcihegarxyrqx68hz6mhw3w61x6tghidatyioa7', + balance: '10000', + pending: '10000' + } +]; diff --git a/mirage/models/wallet.js b/mirage/models/wallet.js deleted file mode 100644 index 1486a724..00000000 --- a/mirage/models/wallet.js +++ /dev/null @@ -1,4 +0,0 @@ -import { Model } from 'ember-cli-mirage'; - -export default Model.extend({ -}); diff --git a/mirage/scenarios/default.js b/mirage/scenarios/default.js index adb3af4c..7a4260a7 100644 --- a/mirage/scenarios/default.js +++ b/mirage/scenarios/default.js @@ -1,4 +1,4 @@ -export default function(/* server */) { +export default function(server) { /* Seed your development database using your factories. @@ -6,4 +6,6 @@ export default function(/* server */) { */ // server.createList('post', 10); + + server.loadFixtures('accounts'); } diff --git a/mirage/serializers/application.js b/mirage/serializers/application.js index e76438b6..1a1ee12e 100644 --- a/mirage/serializers/application.js +++ b/mirage/serializers/application.js @@ -1,4 +1,6 @@ import { Serializer } from 'ember-cli-mirage'; export default Serializer.extend({ + root: false, + embed: true }); diff --git a/package-lock.json b/package-lock.json index 72f23163..b9dc0ff3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5618,6 +5618,12 @@ "randombytes": "2.0.5" } }, + "dijkstrajs": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.1.tgz", + "integrity": "sha1-082BIh4+pAdCz83lVtTpnpjdxxs=", + "dev": true + }, "doctrine": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.2.tgz", @@ -8435,6 +8441,283 @@ "ember-cli-babel": "6.11.0" } }, + "ember-localstorage-adapter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ember-localstorage-adapter/-/ember-localstorage-adapter-1.0.0.tgz", + "integrity": "sha1-mF2q3ODBSdCv2QShfvZ65ZoLfj0=", + "dev": true, + "requires": { + "ember-cli-babel": "5.2.4", + "ember-runtime-enumerable-includes-polyfill": "1.0.4" + }, + "dependencies": { + "babel-core": { + "version": "5.8.38", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.38.tgz", + "integrity": "sha1-H8ruedfmG3ULALjlT238nQr4ZVg=", + "dev": true, + "requires": { + "babel-plugin-constant-folding": "1.0.1", + "babel-plugin-dead-code-elimination": "1.0.2", + "babel-plugin-eval": "1.0.1", + "babel-plugin-inline-environment-variables": "1.0.1", + "babel-plugin-jscript": "1.0.4", + "babel-plugin-member-expression-literals": "1.0.1", + "babel-plugin-property-literals": "1.0.1", + "babel-plugin-proto-to-assign": "1.0.4", + "babel-plugin-react-constant-elements": "1.0.3", + "babel-plugin-react-display-name": "1.0.3", + "babel-plugin-remove-console": "1.0.1", + "babel-plugin-remove-debugger": "1.0.1", + "babel-plugin-runtime": "1.0.7", + "babel-plugin-undeclared-variables-check": "1.0.2", + "babel-plugin-undefined-to-void": "1.1.6", + "babylon": "5.8.38", + "bluebird": "2.11.0", + "chalk": "1.1.3", + "convert-source-map": "1.1.3", + "core-js": "1.2.7", + "debug": "2.6.9", + "detect-indent": "3.0.1", + "esutils": "2.0.2", + "fs-readdir-recursive": "0.1.2", + "globals": "6.4.1", + "home-or-tmp": "1.0.0", + "is-integer": "1.0.7", + "js-tokens": "1.0.1", + "json5": "0.4.0", + "lodash": "3.10.1", + "minimatch": "2.0.10", + "output-file-sync": "1.1.2", + "path-exists": "1.0.0", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "regenerator": "0.8.40", + "regexpu": "1.3.0", + "repeating": "1.1.3", + "resolve": "1.5.0", + "shebang-regex": "1.0.0", + "slash": "1.0.0", + "source-map": "0.5.7", + "source-map-support": "0.2.10", + "to-fast-properties": "1.0.3", + "trim-right": "1.0.1", + "try-resolve": "1.0.1" + } + }, + "babylon": { + "version": "5.8.38", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-5.8.38.tgz", + "integrity": "sha1-7JsSCxG/bM1Bc6GL8hfmC3mFn/0=", + "dev": true + }, + "bluebird": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", + "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=", + "dev": true + }, + "broccoli-babel-transpiler": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/broccoli-babel-transpiler/-/broccoli-babel-transpiler-5.7.2.tgz", + "integrity": "sha512-vFQ+aSR9J81fm3MXXQGgDxswYINHl2p5duLvRLVnpmgPDNdpdsa30gh3xnmhzR/GwWFBfUNle7aYxthlgvsN0w==", + "dev": true, + "requires": { + "babel-core": "5.8.38", + "broccoli-funnel": "1.2.0", + "broccoli-merge-trees": "1.2.4", + "broccoli-persistent-filter": "1.4.3", + "clone": "0.2.0", + "hash-for-dep": "1.2.3", + "heimdalljs-logger": "0.1.9", + "json-stable-stringify": "1.0.1", + "rsvp": "3.6.2", + "workerpool": "2.3.0" + }, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "dev": true + } + } + }, + "broccoli-funnel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/broccoli-funnel/-/broccoli-funnel-1.2.0.tgz", + "integrity": "sha1-zdw6/F/xaFqAI0iP/3TOb7WlEpY=", + "dev": true, + "requires": { + "array-equal": "1.0.0", + "blank-object": "1.0.2", + "broccoli-plugin": "1.3.0", + "debug": "2.6.9", + "exists-sync": "0.0.4", + "fast-ordered-set": "1.0.3", + "fs-tree-diff": "0.5.7", + "heimdalljs": "0.2.5", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "path-posix": "1.0.0", + "rimraf": "2.6.2", + "symlink-or-copy": "1.1.8", + "walk-sync": "0.3.2" + }, + "dependencies": { + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + } + } + }, + "broccoli-merge-trees": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/broccoli-merge-trees/-/broccoli-merge-trees-1.2.4.tgz", + "integrity": "sha1-oAFRm7UGfwZYnZGvopQkRaLQ/bU=", + "dev": true, + "requires": { + "broccoli-plugin": "1.3.0", + "can-symlink": "1.0.0", + "fast-ordered-set": "1.0.3", + "fs-tree-diff": "0.5.7", + "heimdalljs": "0.2.5", + "heimdalljs-logger": "0.1.9", + "rimraf": "2.6.2", + "symlink-or-copy": "1.1.8" + } + }, + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", + "dev": true + }, + "detect-indent": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-3.0.1.tgz", + "integrity": "sha1-ncXl3bzu+DJXZLlFGwK8bVQIT3U=", + "dev": true, + "requires": { + "get-stdin": "4.0.1", + "minimist": "1.2.0", + "repeating": "1.1.3" + } + }, + "ember-cli-babel": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ember-cli-babel/-/ember-cli-babel-5.2.4.tgz", + "integrity": "sha1-XOT0awjtb20h6Hhhn7aJcZ1ujhM=", + "dev": true, + "requires": { + "broccoli-babel-transpiler": "5.7.2", + "broccoli-funnel": "1.2.0", + "clone": "2.1.1", + "ember-cli-version-checker": "1.3.1", + "resolve": "1.5.0" + } + }, + "ember-runtime-enumerable-includes-polyfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/ember-runtime-enumerable-includes-polyfill/-/ember-runtime-enumerable-includes-polyfill-1.0.4.tgz", + "integrity": "sha1-FqdhLjR6Lt8H2osvLwnb/ucN66A=", + "dev": true, + "requires": { + "ember-cli-babel": "5.2.4", + "ember-cli-version-checker": "1.3.1" + } + }, + "globals": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/globals/-/globals-6.4.1.tgz", + "integrity": "sha1-hJgDKzttHMge68X3lpDY/in6v08=", + "dev": true + }, + "home-or-tmp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-1.0.0.tgz", + "integrity": "sha1-S58eQIAMPlDGwn94FnavzOcfOYU=", + "dev": true, + "requires": { + "os-tmpdir": "1.0.2", + "user-home": "1.1.1" + } + }, + "js-tokens": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz", + "integrity": "sha1-zENaXIuUrRWst5gxQPyAGCyJrq4=", + "dev": true + }, + "json5": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz", + "integrity": "sha1-BUNS5MTIDIbAkjh31EneF2pzLI0=", + "dev": true + }, + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + }, + "minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "path-exists": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz", + "integrity": "sha1-1aiZjrce83p0w06w2eum6HjuoIE=", + "dev": true + }, + "repeating": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", + "integrity": "sha1-PUEUIYh3U3SU+X93+Xhfq4EPpKw=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "source-map-support": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.2.10.tgz", + "integrity": "sha1-6lo5AKHByyUJagrozFwrSxDe09w=", + "dev": true, + "requires": { + "source-map": "0.1.32" + }, + "dependencies": { + "source-map": { + "version": "0.1.32", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz", + "integrity": "sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + } + } + }, "ember-lodash": { "version": "4.17.6", "resolved": "https://registry.npmjs.org/ember-lodash/-/ember-lodash-4.17.6.tgz", @@ -8895,6 +9178,42 @@ } } }, + "ember-simple-qrcode": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ember-simple-qrcode/-/ember-simple-qrcode-0.1.0.tgz", + "integrity": "sha1-Y+uvANCATwNWCSAGPZPDuWZXZMY=", + "dev": true, + "requires": { + "broccoli-funnel": "1.2.0", + "broccoli-merge-trees": "2.0.0", + "ember-cli-babel": "6.11.0", + "qrcode": "0.8.2" + }, + "dependencies": { + "broccoli-funnel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/broccoli-funnel/-/broccoli-funnel-1.2.0.tgz", + "integrity": "sha1-zdw6/F/xaFqAI0iP/3TOb7WlEpY=", + "dev": true, + "requires": { + "array-equal": "1.0.0", + "blank-object": "1.0.2", + "broccoli-plugin": "1.3.0", + "debug": "2.6.9", + "exists-sync": "0.0.4", + "fast-ordered-set": "1.0.3", + "fs-tree-diff": "0.5.7", + "heimdalljs": "0.2.5", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "path-posix": "1.0.0", + "rimraf": "2.6.2", + "symlink-or-copy": "1.1.8", + "walk-sync": "0.3.2" + } + } + } + }, "ember-source": { "version": "2.17.0", "resolved": "https://registry.npmjs.org/ember-source/-/ember-source-2.17.0.tgz", @@ -17699,6 +18018,12 @@ "integrity": "sha1-HPWjCw2AbNGPiPxBprXUrWFbO6k=", "dev": true }, + "pngjs": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-2.3.1.tgz", + "integrity": "sha1-EdHhK5y2TWPjDBQ6Mw9MH1Z9qF8=", + "dev": true + }, "popper.js": { "version": "1.12.9", "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.12.9.tgz", @@ -18306,6 +18631,26 @@ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", "dev": true }, + "qrcode": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-0.8.2.tgz", + "integrity": "sha1-SktN10rkO3sF1MxZi63BwDg3GJw=", + "dev": true, + "requires": { + "colors": "1.1.2", + "dijkstrajs": "1.0.1", + "isarray": "2.0.2", + "pngjs": "2.3.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.2.tgz", + "integrity": "sha512-DKCXsIpN+352zm3Sd75dY9HyaIcxU6grh118GhTPXc85jJ5nEGKOsPQOwSuE7aRd+XVRcC/Em6W44onQEQ9RBg==", + "dev": true + } + } + }, "qs": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", diff --git a/package.json b/package.json index ca1e7183..185dd367 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,9 @@ "ember-electron": "^2.7.2", "ember-export-application-global": "^2.0.0", "ember-load-initializers": "^1.0.0", + "ember-localstorage-adapter": "^1.0.0", "ember-resolver": "^4.5.0", + "ember-simple-qrcode": "^0.1.0", "ember-source": "^2.17.0", "loader.js": "^4.6.0" }, diff --git a/tests/unit/ajax/service-test.js b/tests/unit/ajax/service-test.js new file mode 100644 index 00000000..5855a7ad --- /dev/null +++ b/tests/unit/ajax/service-test.js @@ -0,0 +1,12 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('service:ajax', 'Unit | Service | ajax', { + // Specify the other units that are required for this test. + // needs: ['service:foo'] +}); + +// Replace this with your real tests. +test('it exists', function(assert) { + let service = this.subject(); + assert.ok(service); +}); diff --git a/tests/unit/application/adapter-test.js b/tests/unit/application/adapter-test.js new file mode 100644 index 00000000..f0a2101e --- /dev/null +++ b/tests/unit/application/adapter-test.js @@ -0,0 +1,12 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('adapter:application', 'Unit | Adapter | application', { + // Specify the other units that are required for this test. + // needs: ['serializer:foo'] +}); + +// Replace this with your real tests. +test('it exists', function(assert) { + let adapter = this.subject(); + assert.ok(adapter); +}); diff --git a/tests/unit/wallet/adapter-test.js b/tests/unit/wallet/adapter-test.js new file mode 100644 index 00000000..d6ccb1eb --- /dev/null +++ b/tests/unit/wallet/adapter-test.js @@ -0,0 +1,12 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('adapter:wallet', 'Unit | Adapter | wallet', { + // Specify the other units that are required for this test. + // needs: ['serializer:foo'] +}); + +// Replace this with your real tests. +test('it exists', function(assert) { + let adapter = this.subject(); + assert.ok(adapter); +}); diff --git a/tests/unit/wallets/accounts/index/route-test.js b/tests/unit/wallets/accounts/index/route-test.js new file mode 100644 index 00000000..868eaa2b --- /dev/null +++ b/tests/unit/wallets/accounts/index/route-test.js @@ -0,0 +1,11 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('route:wallets/accounts/index', 'Unit | Route | wallets/accounts/index', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +test('it exists', function(assert) { + let route = this.subject(); + assert.ok(route); +}); diff --git a/tests/unit/wallets/accounts/route-test.js b/tests/unit/wallets/accounts/route-test.js new file mode 100644 index 00000000..f27e5be6 --- /dev/null +++ b/tests/unit/wallets/accounts/route-test.js @@ -0,0 +1,11 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('route:wallets/accounts', 'Unit | Route | wallets/accounts', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +test('it exists', function(assert) { + let route = this.subject(); + assert.ok(route); +}); diff --git a/tests/unit/wallets/route-test.js b/tests/unit/wallets/route-test.js new file mode 100644 index 00000000..a85edef3 --- /dev/null +++ b/tests/unit/wallets/route-test.js @@ -0,0 +1,11 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('route:wallets', 'Unit | Route | wallets', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +test('it exists', function(assert) { + let route = this.subject(); + assert.ok(route); +});