logster 2.1.2 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +21 -19
- data/.rubocop.yml +1 -1
- data/.travis.yml +16 -16
- data/CHANGELOG.md +224 -172
- data/Gemfile +4 -4
- data/Guardfile +8 -8
- data/LICENSE.txt +22 -22
- data/README.md +99 -99
- data/Rakefile +21 -21
- data/assets/fonts/FontAwesome.otf +0 -0
- data/assets/fonts/fontawesome-webfont.eot +0 -0
- data/assets/fonts/fontawesome-webfont.svg +639 -639
- data/assets/fonts/fontawesome-webfont.ttf +0 -0
- data/assets/fonts/fontawesome-webfont.woff +0 -0
- data/assets/fonts/fontawesome-webfont.woff2 +0 -0
- data/assets/images/Icon-144_rounded.png +0 -0
- data/assets/images/Icon-144_square.png +0 -0
- data/assets/images/icon_144x144.png +0 -0
- data/assets/images/icon_64x64.png +0 -0
- data/assets/javascript/client-app.js +115 -106
- data/assets/stylesheets/client-app.css +1 -1
- data/build_client_app.sh +0 -0
- data/client-app/.editorconfig +20 -20
- data/client-app/.ember-cli +9 -9
- data/client-app/.eslintignore +19 -19
- data/client-app/.eslintrc.js +46 -46
- data/client-app/.gitignore +23 -23
- data/client-app/.travis.yml +27 -27
- data/client-app/.watchmanconfig +3 -3
- data/client-app/README.md +57 -57
- data/client-app/app/app.js +0 -0
- data/client-app/app/components/actions-menu.js +43 -43
- data/client-app/app/components/env-tab.js +80 -80
- data/client-app/app/components/message-info.js +0 -0
- data/client-app/app/components/message-row.js +0 -0
- data/client-app/app/components/panel-resizer.js +0 -0
- data/client-app/app/components/patterns-list.js +109 -0
- data/client-app/app/components/tab-contents.js +27 -27
- data/client-app/app/components/tabbed-section.js +0 -0
- data/client-app/app/components/time-formatter.js +0 -0
- data/client-app/app/components/update-time.js +0 -0
- data/client-app/app/controllers/index.js +22 -6
- data/client-app/app/controllers/show.js +0 -0
- data/client-app/app/helpers/logster-url.js +12 -0
- data/client-app/app/helpers/or.js +7 -0
- data/client-app/app/index.html +30 -29
- data/client-app/app/initializers/app-init.js +67 -67
- data/client-app/app/lib/preload.js +20 -20
- data/client-app/app/lib/utilities.js +150 -149
- data/client-app/app/models/message-collection.js +0 -0
- data/client-app/app/models/message.js +100 -100
- data/client-app/app/models/pattern-item.js +25 -0
- data/client-app/app/resolver.js +0 -0
- data/client-app/app/router.js +1 -0
- data/client-app/app/routes/index.js +2 -9
- data/client-app/app/routes/settings.js +15 -0
- data/client-app/app/routes/show.js +0 -0
- data/client-app/app/styles/app.css +633 -527
- data/client-app/app/templates/application.hbs +2 -2
- data/client-app/app/templates/components/actions-menu.hbs +12 -12
- data/client-app/app/templates/components/env-tab.hbs +10 -10
- data/client-app/app/templates/components/message-info.hbs +41 -41
- data/client-app/app/templates/components/message-row.hbs +15 -15
- data/client-app/app/templates/components/panel-resizer.hbs +3 -3
- data/client-app/app/templates/components/patterns-list.hbs +25 -0
- data/client-app/app/templates/components/tabbed-section.hbs +10 -10
- data/client-app/app/templates/components/time-formatter.hbs +1 -1
- data/client-app/app/templates/index.hbs +65 -58
- data/client-app/app/templates/settings.hbs +26 -0
- data/client-app/app/templates/show.hbs +7 -7
- data/client-app/config/environment.js +51 -51
- data/client-app/config/optional-features.json +3 -3
- data/client-app/config/targets.js +18 -18
- data/client-app/ember-cli-build.js +29 -29
- data/client-app/package-lock.json +11357 -11365
- data/client-app/package.json +57 -56
- data/client-app/public/assets/images/icon_144x144.png +0 -0
- data/client-app/public/assets/images/icon_64x64.png +0 -0
- data/client-app/testem.js +25 -25
- data/client-app/tests/index.html +34 -34
- data/client-app/tests/integration/components/env-tab-test.js +134 -123
- data/client-app/tests/integration/components/message-info-test.js +111 -111
- data/client-app/tests/integration/components/patterns-list-test.js +56 -0
- data/client-app/tests/test-helper.js +8 -8
- data/client-app/tests/unit/controllers/index-test.js +12 -12
- data/client-app/tests/unit/controllers/show-test.js +12 -12
- data/client-app/tests/unit/initializers/app-init-test.js +31 -31
- data/client-app/tests/unit/routes/index-test.js +11 -11
- data/client-app/tests/unit/routes/show-test.js +11 -11
- data/lib/examples/sidekiq_logster_reporter.rb +21 -21
- data/lib/logster.rb +59 -54
- data/lib/logster/base_store.rb +169 -141
- data/lib/logster/cache.rb +20 -0
- data/lib/logster/configuration.rb +27 -26
- data/lib/logster/defer_logger.rb +14 -14
- data/lib/logster/ignore_pattern.rb +65 -65
- data/lib/logster/logger.rb +113 -113
- data/lib/logster/message.rb +212 -212
- data/lib/logster/middleware/debug_exceptions.rb +26 -26
- data/lib/logster/middleware/reporter.rb +55 -55
- data/lib/logster/middleware/viewer.rb +297 -222
- data/lib/logster/pattern.rb +95 -0
- data/lib/logster/rails/railtie.rb +63 -63
- data/lib/logster/redis_store.rb +584 -566
- data/lib/logster/scheduler.rb +54 -54
- data/lib/logster/suppression_pattern.rb +17 -0
- data/lib/logster/version.rb +3 -3
- data/lib/logster/web.rb +14 -14
- data/logster.gemspec +35 -35
- data/test/examples/test_sidekiq_reporter_example.rb +46 -46
- data/test/fake_data/Gemfile +4 -4
- data/test/fake_data/generate.rb +10 -10
- data/test/logster/middleware/test_reporter.rb +19 -19
- data/test/logster/middleware/test_viewer.rb +267 -96
- data/test/logster/test_base_store.rb +147 -147
- data/test/logster/test_cache.rb +38 -0
- data/test/logster/test_defer_logger.rb +34 -34
- data/test/logster/test_ignore_pattern.rb +41 -41
- data/test/logster/test_logger.rb +100 -86
- data/test/logster/test_message.rb +119 -119
- data/test/logster/test_pattern.rb +152 -0
- data/test/logster/test_redis_rate_limiter.rb +230 -230
- data/test/logster/test_redis_store.rb +689 -720
- data/test/test_helper.rb +38 -38
- data/vendor/assets/javascripts/logster.js.erb +39 -39
- metadata +24 -7
|
@@ -1,111 +1,111 @@
|
|
|
1
|
-
import { module, test } from "qunit";
|
|
2
|
-
import { setupRenderingTest } from "ember-qunit";
|
|
3
|
-
import { render, find, findAll, click } from "@ember/test-helpers";
|
|
4
|
-
import hbs from "htmlbars-inline-precompile";
|
|
5
|
-
import Message from "client-app/models/message";
|
|
6
|
-
|
|
7
|
-
const backtrace = "test backtrace:26";
|
|
8
|
-
const messageTitle = "This Is Title";
|
|
9
|
-
|
|
10
|
-
const message = Message.create({
|
|
11
|
-
backtrace,
|
|
12
|
-
message: messageTitle,
|
|
13
|
-
env: { c: "cc", d: "dd" }
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
module("Integration | Component | message-info", function(hooks) {
|
|
17
|
-
setupRenderingTest(hooks);
|
|
18
|
-
|
|
19
|
-
test("it renders", async function(assert) {
|
|
20
|
-
this.setProperties({
|
|
21
|
-
actionsInMenu: true,
|
|
22
|
-
showTitle: false,
|
|
23
|
-
message
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
await render(
|
|
27
|
-
hbs`{{message-info currentMessage=message showTitle=showTitle actionsInMenu=actionsInMenu}}`
|
|
28
|
-
);
|
|
29
|
-
let activeTab = find(".message-info .content.active pre");
|
|
30
|
-
assert.equal(
|
|
31
|
-
activeTab.textContent,
|
|
32
|
-
backtrace,
|
|
33
|
-
"default active tab is backtrace"
|
|
34
|
-
);
|
|
35
|
-
assert.dom(".message-info .content h3").doesNotExist("no titles are shown");
|
|
36
|
-
assert.equal(findAll(".tabs a").length, 3, "3 tabs shown");
|
|
37
|
-
assert.equal(
|
|
38
|
-
find(".tabs a.active").textContent.trim(),
|
|
39
|
-
"backtrace",
|
|
40
|
-
"default active tab is backtrace"
|
|
41
|
-
);
|
|
42
|
-
assert.equal(
|
|
43
|
-
findAll(".message-actions button").length,
|
|
44
|
-
2,
|
|
45
|
-
"2 buttons shown when `actionsInMenu` is true"
|
|
46
|
-
);
|
|
47
|
-
assert
|
|
48
|
-
.dom(".message-actions button.expand.no-text")
|
|
49
|
-
.exists("menu expand button is shown");
|
|
50
|
-
assert.dom(".message-actions button.share").exists("share button is shown");
|
|
51
|
-
|
|
52
|
-
await click(find(".message-actions button.expand.no-text"));
|
|
53
|
-
assert.equal(
|
|
54
|
-
findAll(".actions-menu button").length,
|
|
55
|
-
2,
|
|
56
|
-
"extra buttons shown inside a menu"
|
|
57
|
-
);
|
|
58
|
-
assert
|
|
59
|
-
.dom(".actions-menu button.remove")
|
|
60
|
-
.exists("remove button inside the menu");
|
|
61
|
-
assert
|
|
62
|
-
.dom(".actions-menu button.protect")
|
|
63
|
-
.exists("protect button inside the menu");
|
|
64
|
-
|
|
65
|
-
this.setProperties({
|
|
66
|
-
showTitle: true,
|
|
67
|
-
actionsInMenu: false
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
assert.equal(
|
|
71
|
-
findAll(".message-info .content h3").length,
|
|
72
|
-
3,
|
|
73
|
-
"titles are shown"
|
|
74
|
-
);
|
|
75
|
-
assert
|
|
76
|
-
.dom(".message-actions button.expand.no-text")
|
|
77
|
-
.doesNotExist("menu expand button is not shown");
|
|
78
|
-
assert.equal(
|
|
79
|
-
findAll(".message-actions button").length,
|
|
80
|
-
3,
|
|
81
|
-
"all actions buttons are shown inline when `actionsInMenu` is false"
|
|
82
|
-
);
|
|
83
|
-
|
|
84
|
-
await click(findAll(".tabs a")[0]);
|
|
85
|
-
activeTab = find(".message-info .content.active pre");
|
|
86
|
-
assert.equal(activeTab.textContent, messageTitle, "can switch tabs");
|
|
87
|
-
|
|
88
|
-
assert
|
|
89
|
-
.dom(".message-actions button.solve")
|
|
90
|
-
.doesNotExist(
|
|
91
|
-
"no solve button when there is no application_version in env"
|
|
92
|
-
);
|
|
93
|
-
|
|
94
|
-
message.set("env.application_version", "fddfsdfdsf");
|
|
95
|
-
this.set("message", message);
|
|
96
|
-
assert
|
|
97
|
-
.dom(".message-actions button.solve")
|
|
98
|
-
.exists("solve button is shown when there is application_version in env");
|
|
99
|
-
|
|
100
|
-
message.set("env", [
|
|
101
|
-
{ sd: "dx", application_version: "fsfdsf" },
|
|
102
|
-
{ vcv: "dxc" }
|
|
103
|
-
]);
|
|
104
|
-
this.set("message", message);
|
|
105
|
-
assert
|
|
106
|
-
.dom(".message-actions button.solve")
|
|
107
|
-
.exists(
|
|
108
|
-
"solve button is shown when there is application_version in env (array)"
|
|
109
|
-
);
|
|
110
|
-
});
|
|
111
|
-
});
|
|
1
|
+
import { module, test } from "qunit";
|
|
2
|
+
import { setupRenderingTest } from "ember-qunit";
|
|
3
|
+
import { render, find, findAll, click } from "@ember/test-helpers";
|
|
4
|
+
import hbs from "htmlbars-inline-precompile";
|
|
5
|
+
import Message from "client-app/models/message";
|
|
6
|
+
|
|
7
|
+
const backtrace = "test backtrace:26";
|
|
8
|
+
const messageTitle = "This Is Title";
|
|
9
|
+
|
|
10
|
+
const message = Message.create({
|
|
11
|
+
backtrace,
|
|
12
|
+
message: messageTitle,
|
|
13
|
+
env: { c: "cc", d: "dd" }
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
module("Integration | Component | message-info", function(hooks) {
|
|
17
|
+
setupRenderingTest(hooks);
|
|
18
|
+
|
|
19
|
+
test("it renders", async function(assert) {
|
|
20
|
+
this.setProperties({
|
|
21
|
+
actionsInMenu: true,
|
|
22
|
+
showTitle: false,
|
|
23
|
+
message
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
await render(
|
|
27
|
+
hbs`{{message-info currentMessage=message showTitle=showTitle actionsInMenu=actionsInMenu}}`
|
|
28
|
+
);
|
|
29
|
+
let activeTab = find(".message-info .content.active pre");
|
|
30
|
+
assert.equal(
|
|
31
|
+
activeTab.textContent,
|
|
32
|
+
backtrace,
|
|
33
|
+
"default active tab is backtrace"
|
|
34
|
+
);
|
|
35
|
+
assert.dom(".message-info .content h3").doesNotExist("no titles are shown");
|
|
36
|
+
assert.equal(findAll(".tabs a").length, 3, "3 tabs shown");
|
|
37
|
+
assert.equal(
|
|
38
|
+
find(".tabs a.active").textContent.trim(),
|
|
39
|
+
"backtrace",
|
|
40
|
+
"default active tab is backtrace"
|
|
41
|
+
);
|
|
42
|
+
assert.equal(
|
|
43
|
+
findAll(".message-actions button").length,
|
|
44
|
+
2,
|
|
45
|
+
"2 buttons shown when `actionsInMenu` is true"
|
|
46
|
+
);
|
|
47
|
+
assert
|
|
48
|
+
.dom(".message-actions button.expand.no-text")
|
|
49
|
+
.exists("menu expand button is shown");
|
|
50
|
+
assert.dom(".message-actions button.share").exists("share button is shown");
|
|
51
|
+
|
|
52
|
+
await click(find(".message-actions button.expand.no-text"));
|
|
53
|
+
assert.equal(
|
|
54
|
+
findAll(".actions-menu button").length,
|
|
55
|
+
2,
|
|
56
|
+
"extra buttons shown inside a menu"
|
|
57
|
+
);
|
|
58
|
+
assert
|
|
59
|
+
.dom(".actions-menu button.remove")
|
|
60
|
+
.exists("remove button inside the menu");
|
|
61
|
+
assert
|
|
62
|
+
.dom(".actions-menu button.protect")
|
|
63
|
+
.exists("protect button inside the menu");
|
|
64
|
+
|
|
65
|
+
this.setProperties({
|
|
66
|
+
showTitle: true,
|
|
67
|
+
actionsInMenu: false
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
assert.equal(
|
|
71
|
+
findAll(".message-info .content h3").length,
|
|
72
|
+
3,
|
|
73
|
+
"titles are shown"
|
|
74
|
+
);
|
|
75
|
+
assert
|
|
76
|
+
.dom(".message-actions button.expand.no-text")
|
|
77
|
+
.doesNotExist("menu expand button is not shown");
|
|
78
|
+
assert.equal(
|
|
79
|
+
findAll(".message-actions button").length,
|
|
80
|
+
3,
|
|
81
|
+
"all actions buttons are shown inline when `actionsInMenu` is false"
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
await click(findAll(".tabs a")[0]);
|
|
85
|
+
activeTab = find(".message-info .content.active pre");
|
|
86
|
+
assert.equal(activeTab.textContent, messageTitle, "can switch tabs");
|
|
87
|
+
|
|
88
|
+
assert
|
|
89
|
+
.dom(".message-actions button.solve")
|
|
90
|
+
.doesNotExist(
|
|
91
|
+
"no solve button when there is no application_version in env"
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
message.set("env.application_version", "fddfsdfdsf");
|
|
95
|
+
this.set("message", message);
|
|
96
|
+
assert
|
|
97
|
+
.dom(".message-actions button.solve")
|
|
98
|
+
.exists("solve button is shown when there is application_version in env");
|
|
99
|
+
|
|
100
|
+
message.set("env", [
|
|
101
|
+
{ sd: "dx", application_version: "fsfdsf" },
|
|
102
|
+
{ vcv: "dxc" }
|
|
103
|
+
]);
|
|
104
|
+
this.set("message", message);
|
|
105
|
+
assert
|
|
106
|
+
.dom(".message-actions button.solve")
|
|
107
|
+
.exists(
|
|
108
|
+
"solve button is shown when there is application_version in env (array)"
|
|
109
|
+
);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { module, test } from "qunit";
|
|
2
|
+
import { setupRenderingTest } from "ember-qunit";
|
|
3
|
+
import hbs from "htmlbars-inline-precompile";
|
|
4
|
+
import { fillIn, render, findAll } from "@ember/test-helpers";
|
|
5
|
+
|
|
6
|
+
module("Integration | Component | patterns-list", function(hooks) {
|
|
7
|
+
setupRenderingTest(hooks);
|
|
8
|
+
|
|
9
|
+
test("it renders", async function(assert) {
|
|
10
|
+
this.setProperties({
|
|
11
|
+
mutable: true,
|
|
12
|
+
patterns: []
|
|
13
|
+
});
|
|
14
|
+
await render(hbs`{{patterns-list patterns=patterns mutable=mutable}}`);
|
|
15
|
+
assert
|
|
16
|
+
.dom(".pattern-input")
|
|
17
|
+
.exists("It shows an input when patterns are emtpy");
|
|
18
|
+
assert
|
|
19
|
+
.dom(".btn.new-pattern")
|
|
20
|
+
.exists("It shows a create button when mutable");
|
|
21
|
+
|
|
22
|
+
this.set("patterns", ["/somepattern/", "/anotherpattern/"]);
|
|
23
|
+
assert.equal(
|
|
24
|
+
findAll(".pattern-input").length,
|
|
25
|
+
3,
|
|
26
|
+
"It correctly displays patterns"
|
|
27
|
+
);
|
|
28
|
+
assert
|
|
29
|
+
.dom(".btn.save")
|
|
30
|
+
.doesNotExist("No save buttons are shown when there is 0 buffer");
|
|
31
|
+
|
|
32
|
+
let inputs = findAll(".pattern-input");
|
|
33
|
+
await fillIn(inputs[0], "/newpattern/");
|
|
34
|
+
await fillIn(inputs[2], "/anothernewpattern/");
|
|
35
|
+
|
|
36
|
+
assert
|
|
37
|
+
.dom(".btn.save")
|
|
38
|
+
.exists("Save buttons are shown when there is buffer");
|
|
39
|
+
assert.dom(".btn.trash").exists("Trash buttons are shown");
|
|
40
|
+
|
|
41
|
+
let disabled = inputs.every(inp => inp.disabled);
|
|
42
|
+
assert.notOk(
|
|
43
|
+
disabled,
|
|
44
|
+
"All inputs are not disabled when the list is mutable"
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
this.set("mutable", false);
|
|
48
|
+
|
|
49
|
+
inputs = findAll(".pattern-input");
|
|
50
|
+
disabled = inputs.every(inp => inp.disabled);
|
|
51
|
+
assert.ok(disabled, "All inputs are disabled when the list is immutable");
|
|
52
|
+
assert
|
|
53
|
+
.dom(".btn.trash")
|
|
54
|
+
.doesNotExist("Trash buttons are not shown when the list is immutable");
|
|
55
|
+
});
|
|
56
|
+
});
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import Application from '../app';
|
|
2
|
-
import config from '../config/environment';
|
|
3
|
-
import { setApplication } from '@ember/test-helpers';
|
|
4
|
-
import { start } from 'ember-qunit';
|
|
5
|
-
|
|
6
|
-
setApplication(Application.create(config.APP));
|
|
7
|
-
|
|
8
|
-
start();
|
|
1
|
+
import Application from '../app';
|
|
2
|
+
import config from '../config/environment';
|
|
3
|
+
import { setApplication } from '@ember/test-helpers';
|
|
4
|
+
import { start } from 'ember-qunit';
|
|
5
|
+
|
|
6
|
+
setApplication(Application.create(config.APP));
|
|
7
|
+
|
|
8
|
+
start();
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { module, test } from 'qunit';
|
|
2
|
-
import { setupTest } from 'ember-qunit';
|
|
3
|
-
|
|
4
|
-
module('Unit | Controller | index', function(hooks) {
|
|
5
|
-
setupTest(hooks);
|
|
6
|
-
|
|
7
|
-
// Replace this with your real tests.
|
|
8
|
-
test('it exists', function(assert) {
|
|
9
|
-
let controller = this.owner.lookup('controller:index');
|
|
10
|
-
assert.ok(controller);
|
|
11
|
-
});
|
|
12
|
-
});
|
|
1
|
+
import { module, test } from 'qunit';
|
|
2
|
+
import { setupTest } from 'ember-qunit';
|
|
3
|
+
|
|
4
|
+
module('Unit | Controller | index', function(hooks) {
|
|
5
|
+
setupTest(hooks);
|
|
6
|
+
|
|
7
|
+
// Replace this with your real tests.
|
|
8
|
+
test('it exists', function(assert) {
|
|
9
|
+
let controller = this.owner.lookup('controller:index');
|
|
10
|
+
assert.ok(controller);
|
|
11
|
+
});
|
|
12
|
+
});
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { module, test } from 'qunit';
|
|
2
|
-
import { setupTest } from 'ember-qunit';
|
|
3
|
-
|
|
4
|
-
module('Unit | Controller | show', function(hooks) {
|
|
5
|
-
setupTest(hooks);
|
|
6
|
-
|
|
7
|
-
// Replace this with your real tests.
|
|
8
|
-
test('it exists', function(assert) {
|
|
9
|
-
let controller = this.owner.lookup('controller:show');
|
|
10
|
-
assert.ok(controller);
|
|
11
|
-
});
|
|
12
|
-
});
|
|
1
|
+
import { module, test } from 'qunit';
|
|
2
|
+
import { setupTest } from 'ember-qunit';
|
|
3
|
+
|
|
4
|
+
module('Unit | Controller | show', function(hooks) {
|
|
5
|
+
setupTest(hooks);
|
|
6
|
+
|
|
7
|
+
// Replace this with your real tests.
|
|
8
|
+
test('it exists', function(assert) {
|
|
9
|
+
let controller = this.owner.lookup('controller:show');
|
|
10
|
+
assert.ok(controller);
|
|
11
|
+
});
|
|
12
|
+
});
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import Application from '@ember/application';
|
|
2
|
-
|
|
3
|
-
import { initialize } from 'client-app/initializers/app-init';
|
|
4
|
-
import { module, test } from 'qunit';
|
|
5
|
-
import { setupTest } from 'ember-qunit';
|
|
6
|
-
import { run } from '@ember/runloop';
|
|
7
|
-
|
|
8
|
-
module('Unit | Initializer | app-init', function(hooks) {
|
|
9
|
-
setupTest(hooks);
|
|
10
|
-
|
|
11
|
-
hooks.beforeEach(function() {
|
|
12
|
-
this.TestApplication = Application.extend();
|
|
13
|
-
this.TestApplication.initializer({
|
|
14
|
-
name: 'initializer under test',
|
|
15
|
-
initialize
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
this.application = this.TestApplication.create({ autoboot: false });
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
hooks.afterEach(function() {
|
|
22
|
-
run(this.application, 'destroy');
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
// Replace this with your real tests.
|
|
26
|
-
test('it works', async function(assert) {
|
|
27
|
-
await this.application.boot();
|
|
28
|
-
|
|
29
|
-
assert.ok(true);
|
|
30
|
-
});
|
|
31
|
-
});
|
|
1
|
+
import Application from '@ember/application';
|
|
2
|
+
|
|
3
|
+
import { initialize } from 'client-app/initializers/app-init';
|
|
4
|
+
import { module, test } from 'qunit';
|
|
5
|
+
import { setupTest } from 'ember-qunit';
|
|
6
|
+
import { run } from '@ember/runloop';
|
|
7
|
+
|
|
8
|
+
module('Unit | Initializer | app-init', function(hooks) {
|
|
9
|
+
setupTest(hooks);
|
|
10
|
+
|
|
11
|
+
hooks.beforeEach(function() {
|
|
12
|
+
this.TestApplication = Application.extend();
|
|
13
|
+
this.TestApplication.initializer({
|
|
14
|
+
name: 'initializer under test',
|
|
15
|
+
initialize
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
this.application = this.TestApplication.create({ autoboot: false });
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
hooks.afterEach(function() {
|
|
22
|
+
run(this.application, 'destroy');
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
// Replace this with your real tests.
|
|
26
|
+
test('it works', async function(assert) {
|
|
27
|
+
await this.application.boot();
|
|
28
|
+
|
|
29
|
+
assert.ok(true);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { module, test } from 'qunit';
|
|
2
|
-
import { setupTest } from 'ember-qunit';
|
|
3
|
-
|
|
4
|
-
module('Unit | Route | index', function(hooks) {
|
|
5
|
-
setupTest(hooks);
|
|
6
|
-
|
|
7
|
-
test('it exists', function(assert) {
|
|
8
|
-
let route = this.owner.lookup('route:index');
|
|
9
|
-
assert.ok(route);
|
|
10
|
-
});
|
|
11
|
-
});
|
|
1
|
+
import { module, test } from 'qunit';
|
|
2
|
+
import { setupTest } from 'ember-qunit';
|
|
3
|
+
|
|
4
|
+
module('Unit | Route | index', function(hooks) {
|
|
5
|
+
setupTest(hooks);
|
|
6
|
+
|
|
7
|
+
test('it exists', function(assert) {
|
|
8
|
+
let route = this.owner.lookup('route:index');
|
|
9
|
+
assert.ok(route);
|
|
10
|
+
});
|
|
11
|
+
});
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { module, test } from 'qunit';
|
|
2
|
-
import { setupTest } from 'ember-qunit';
|
|
3
|
-
|
|
4
|
-
module('Unit | Route | show', function(hooks) {
|
|
5
|
-
setupTest(hooks);
|
|
6
|
-
|
|
7
|
-
test('it exists', function(assert) {
|
|
8
|
-
let route = this.owner.lookup('route:show');
|
|
9
|
-
assert.ok(route);
|
|
10
|
-
});
|
|
11
|
-
});
|
|
1
|
+
import { module, test } from 'qunit';
|
|
2
|
+
import { setupTest } from 'ember-qunit';
|
|
3
|
+
|
|
4
|
+
module('Unit | Route | show', function(hooks) {
|
|
5
|
+
setupTest(hooks);
|
|
6
|
+
|
|
7
|
+
test('it exists', function(assert) {
|
|
8
|
+
let route = this.owner.lookup('route:show');
|
|
9
|
+
assert.ok(route);
|
|
10
|
+
});
|
|
11
|
+
});
|