logster 1.3.0 → 1.3.1

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.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +18 -18
  3. data/.travis.yml +15 -15
  4. data/CHANGELOG.md +137 -130
  5. data/Gemfile +4 -4
  6. data/Guardfile +8 -8
  7. data/LICENSE.txt +22 -22
  8. data/README.md +99 -99
  9. data/Rakefile +24 -24
  10. data/assets/fonts/FontAwesome.otf +0 -0
  11. data/assets/fonts/fontawesome-webfont.eot +0 -0
  12. data/assets/fonts/fontawesome-webfont.svg +639 -639
  13. data/assets/fonts/fontawesome-webfont.ttf +0 -0
  14. data/assets/fonts/fontawesome-webfont.woff +0 -0
  15. data/assets/fonts/fontawesome-webfont.woff2 +0 -0
  16. data/assets/images/Icon-144_rounded.png +0 -0
  17. data/assets/images/Icon-144_square.png +0 -0
  18. data/assets/images/icon_144x144.png +0 -0
  19. data/assets/images/icon_64x64.png +0 -0
  20. data/assets/javascript/client-app.js +81 -81
  21. data/assets/javascript/vendor.js +5302 -5302
  22. data/assets/stylesheets/client-app.css +0 -0
  23. data/assets/stylesheets/vendor.css +3 -3
  24. data/build_client_app.sh +12 -12
  25. data/client-app/.editorconfig +20 -20
  26. data/client-app/.ember-cli +9 -9
  27. data/client-app/.eslintignore +19 -19
  28. data/client-app/.eslintrc.js +46 -46
  29. data/client-app/.gitignore +23 -23
  30. data/client-app/.travis.yml +27 -27
  31. data/client-app/.watchmanconfig +3 -3
  32. data/client-app/README.md +57 -57
  33. data/client-app/app/app.js +14 -14
  34. data/client-app/app/components/message-info.js +18 -18
  35. data/client-app/app/components/message-row.js +45 -45
  36. data/client-app/app/components/panel-resizer.js +75 -75
  37. data/client-app/app/components/tab-contents.js +27 -27
  38. data/client-app/app/components/tab-link.js +5 -5
  39. data/client-app/app/components/tabbed-section.js +32 -32
  40. data/client-app/app/components/time-formatter.js +25 -25
  41. data/client-app/app/components/update-time.js +21 -21
  42. data/client-app/app/controllers/index.js +83 -83
  43. data/client-app/app/controllers/show.js +13 -13
  44. data/client-app/app/index.html +29 -29
  45. data/client-app/app/initializers/app-init.js +55 -55
  46. data/client-app/app/lib/preload.js +14 -14
  47. data/client-app/app/lib/utilities.js +140 -140
  48. data/client-app/app/models/message-collection.js +158 -158
  49. data/client-app/app/models/message.js +99 -99
  50. data/client-app/app/resolver.js +3 -3
  51. data/client-app/app/router.js +14 -14
  52. data/client-app/app/routes/index.js +53 -53
  53. data/client-app/app/routes/show.js +14 -14
  54. data/client-app/app/styles/app.css +387 -387
  55. data/client-app/app/templates/application.hbs +2 -2
  56. data/client-app/app/templates/components/message-info.hbs +44 -44
  57. data/client-app/app/templates/components/message-row.hbs +17 -17
  58. data/client-app/app/templates/components/tabbed-section.hbs +10 -10
  59. data/client-app/app/templates/components/time-formatter.hbs +1 -1
  60. data/client-app/app/templates/index.hbs +57 -57
  61. data/client-app/app/templates/show.hbs +4 -4
  62. data/client-app/config/environment.js +51 -51
  63. data/client-app/config/optional-features.json +3 -3
  64. data/client-app/config/targets.js +18 -18
  65. data/client-app/ember-cli-build.js +29 -29
  66. data/client-app/package-lock.json +11365 -11365
  67. data/client-app/package.json +56 -56
  68. data/client-app/testem.js +25 -25
  69. data/client-app/tests/index.html +34 -34
  70. data/client-app/tests/integration/components/message-info-test.js +26 -26
  71. data/client-app/tests/integration/components/message-row-test.js +26 -26
  72. data/client-app/tests/integration/components/panel-resizer-test.js +26 -26
  73. data/client-app/tests/integration/components/tab-contents-test.js +26 -26
  74. data/client-app/tests/integration/components/tab-link-test.js +26 -26
  75. data/client-app/tests/integration/components/tabbed-section-test.js +26 -26
  76. data/client-app/tests/integration/components/time-formatter-test.js +26 -26
  77. data/client-app/tests/integration/components/update-time-test.js +26 -26
  78. data/client-app/tests/test-helper.js +8 -8
  79. data/client-app/tests/unit/controllers/index-test.js +12 -12
  80. data/client-app/tests/unit/controllers/show-test.js +12 -12
  81. data/client-app/tests/unit/initializers/app-init-test.js +31 -31
  82. data/client-app/tests/unit/routes/index-test.js +11 -11
  83. data/client-app/tests/unit/routes/show-test.js +11 -11
  84. data/lib/examples/sidekiq_logster_reporter.rb +21 -21
  85. data/lib/logster.rb +54 -54
  86. data/lib/logster/base_store.rb +130 -130
  87. data/lib/logster/configuration.rb +25 -25
  88. data/lib/logster/ignore_pattern.rb +65 -65
  89. data/lib/logster/logger.rb +108 -102
  90. data/lib/logster/message.rb +227 -227
  91. data/lib/logster/middleware/debug_exceptions.rb +26 -26
  92. data/lib/logster/middleware/reporter.rb +56 -56
  93. data/lib/logster/middleware/viewer.rb +220 -220
  94. data/lib/logster/rails/railtie.rb +58 -58
  95. data/lib/logster/redis_store.rb +481 -481
  96. data/lib/logster/version.rb +3 -3
  97. data/lib/logster/web.rb +14 -14
  98. data/logster.gemspec +34 -34
  99. data/test/examples/test_sidekiq_reporter_example.rb +46 -46
  100. data/test/fake_data/Gemfile +4 -4
  101. data/test/fake_data/generate.rb +10 -10
  102. data/test/logster/middleware/test_reporter.rb +21 -21
  103. data/test/logster/middleware/test_viewer.rb +96 -96
  104. data/test/logster/test_base_store.rb +147 -147
  105. data/test/logster/test_ignore_pattern.rb +41 -41
  106. data/test/logster/test_logger.rb +80 -74
  107. data/test/logster/test_message.rb +34 -34
  108. data/test/logster/test_redis_rate_limiter.rb +230 -230
  109. data/test/logster/test_redis_store.rb +427 -427
  110. data/test/test_helper.rb +38 -38
  111. data/vendor/assets/javascripts/logster.js.erb +39 -39
  112. metadata +3 -3
@@ -1,56 +1,56 @@
1
- {
2
- "name": "client-app",
3
- "version": "0.0.0",
4
- "private": true,
5
- "description": "Logging framework and viewer",
6
- "repository": "https://github.com/discourse/logster/",
7
- "license": "MIT",
8
- "author": "Sam Saffron",
9
- "directories": {
10
- "doc": "doc",
11
- "test": "tests"
12
- },
13
- "scripts": {
14
- "build": "ember build",
15
- "lint:hbs": "ember-template-lint .",
16
- "lint:js": "eslint .",
17
- "start": "ember serve",
18
- "test": "ember test"
19
- },
20
- "devDependencies": {
21
- "@ember/jquery": "^0.5.2",
22
- "@ember/optional-features": "^0.6.3",
23
- "broccoli-asset-rev": "^2.7.0",
24
- "ember-ajax": "^3.1.0",
25
- "ember-cli": "~3.5.0",
26
- "ember-cli-app-version": "^3.2.0",
27
- "ember-cli-babel": "^6.16.0",
28
- "ember-cli-dependency-checker": "^3.0.0",
29
- "ember-cli-eslint": "^4.2.3",
30
- "ember-cli-htmlbars": "^3.0.0",
31
- "ember-cli-htmlbars-inline-precompile": "^1.0.3",
32
- "ember-cli-inject-live-reload": "^1.8.2",
33
- "ember-cli-sri": "^2.1.1",
34
- "ember-cli-template-lint": "^1.0.0-beta.1",
35
- "ember-cli-uglify": "^2.1.0",
36
- "ember-data": "~3.5.0",
37
- "ember-export-application-global": "^2.0.0",
38
- "ember-font-awesome": "^4.0.0-rc.4",
39
- "ember-load-initializers": "^1.1.0",
40
- "ember-maybe-import-regenerator": "^0.1.6",
41
- "ember-qunit": "^3.4.1",
42
- "ember-resolver": "^5.0.1",
43
- "ember-source": "~3.5.0",
44
- "ember-welcome-page": "^3.2.0",
45
- "eslint-plugin-ember": "^5.2.0",
46
- "loader.js": "^4.7.0",
47
- "qunit-dom": "^0.8.0"
48
- },
49
- "engines": {
50
- "node": "6.* || 8.* || >= 10.*"
51
- },
52
- "dependencies": {
53
- "lodash": "~4.17.11",
54
- "moment": "~2.22.2"
55
- }
56
- }
1
+ {
2
+ "name": "client-app",
3
+ "version": "0.0.0",
4
+ "private": true,
5
+ "description": "Logging framework and viewer",
6
+ "repository": "https://github.com/discourse/logster/",
7
+ "license": "MIT",
8
+ "author": "Sam Saffron",
9
+ "directories": {
10
+ "doc": "doc",
11
+ "test": "tests"
12
+ },
13
+ "scripts": {
14
+ "build": "ember build",
15
+ "lint:hbs": "ember-template-lint .",
16
+ "lint:js": "eslint .",
17
+ "start": "ember serve",
18
+ "test": "ember test"
19
+ },
20
+ "devDependencies": {
21
+ "@ember/jquery": "^0.5.2",
22
+ "@ember/optional-features": "^0.6.3",
23
+ "broccoli-asset-rev": "^2.7.0",
24
+ "ember-ajax": "^3.1.0",
25
+ "ember-cli": "~3.5.0",
26
+ "ember-cli-app-version": "^3.2.0",
27
+ "ember-cli-babel": "^6.16.0",
28
+ "ember-cli-dependency-checker": "^3.0.0",
29
+ "ember-cli-eslint": "^4.2.3",
30
+ "ember-cli-htmlbars": "^3.0.0",
31
+ "ember-cli-htmlbars-inline-precompile": "^1.0.3",
32
+ "ember-cli-inject-live-reload": "^1.8.2",
33
+ "ember-cli-sri": "^2.1.1",
34
+ "ember-cli-template-lint": "^1.0.0-beta.1",
35
+ "ember-cli-uglify": "^2.1.0",
36
+ "ember-data": "~3.5.0",
37
+ "ember-export-application-global": "^2.0.0",
38
+ "ember-font-awesome": "^4.0.0-rc.4",
39
+ "ember-load-initializers": "^1.1.0",
40
+ "ember-maybe-import-regenerator": "^0.1.6",
41
+ "ember-qunit": "^3.4.1",
42
+ "ember-resolver": "^5.0.1",
43
+ "ember-source": "~3.5.0",
44
+ "ember-welcome-page": "^3.2.0",
45
+ "eslint-plugin-ember": "^5.2.0",
46
+ "loader.js": "^4.7.0",
47
+ "qunit-dom": "^0.8.0"
48
+ },
49
+ "engines": {
50
+ "node": "6.* || 8.* || >= 10.*"
51
+ },
52
+ "dependencies": {
53
+ "lodash": "~4.17.11",
54
+ "moment": "~2.22.2"
55
+ }
56
+ }
@@ -1,25 +1,25 @@
1
- module.exports = {
2
- test_page: 'tests/index.html?hidepassed',
3
- disable_watching: true,
4
- launch_in_ci: [
5
- 'Chrome'
6
- ],
7
- launch_in_dev: [
8
- 'Chrome'
9
- ],
10
- browser_args: {
11
- Chrome: {
12
- ci: [
13
- // --no-sandbox is needed when running Chrome inside a container
14
- process.env.CI ? '--no-sandbox' : null,
15
- '--headless',
16
- '--disable-gpu',
17
- '--disable-dev-shm-usage',
18
- '--disable-software-rasterizer',
19
- '--mute-audio',
20
- '--remote-debugging-port=0',
21
- '--window-size=1440,900'
22
- ].filter(Boolean)
23
- }
24
- }
25
- };
1
+ module.exports = {
2
+ test_page: 'tests/index.html?hidepassed',
3
+ disable_watching: true,
4
+ launch_in_ci: [
5
+ 'Chrome'
6
+ ],
7
+ launch_in_dev: [
8
+ 'Chrome'
9
+ ],
10
+ browser_args: {
11
+ Chrome: {
12
+ ci: [
13
+ // --no-sandbox is needed when running Chrome inside a container
14
+ process.env.CI ? '--no-sandbox' : null,
15
+ '--headless',
16
+ '--disable-gpu',
17
+ '--disable-dev-shm-usage',
18
+ '--disable-software-rasterizer',
19
+ '--mute-audio',
20
+ '--remote-debugging-port=0',
21
+ '--window-size=1440,900'
22
+ ].filter(Boolean)
23
+ }
24
+ }
25
+ };
@@ -1,34 +1,34 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
- <title>ClientApp Tests</title>
7
- <meta name="description" content="">
8
- <meta name="viewport" content="width=device-width, initial-scale=1">
9
- <meta id="preloaded-data" data-root-path="/logs" data-preloaded="{}">
10
-
11
- {{content-for "head"}}
12
- {{content-for "test-head"}}
13
-
14
- <link rel="stylesheet" href="{{rootURL}}assets/vendor.css">
15
- <link rel="stylesheet" href="{{rootURL}}assets/client-app.css">
16
- <link rel="stylesheet" href="{{rootURL}}assets/test-support.css">
17
-
18
- {{content-for "head-footer"}}
19
- {{content-for "test-head-footer"}}
20
- </head>
21
- <body>
22
- {{content-for "body"}}
23
- {{content-for "test-body"}}
24
-
25
- <script src="/testem.js" integrity=""></script>
26
- <script src="{{rootURL}}assets/vendor.js"></script>
27
- <script src="{{rootURL}}assets/test-support.js"></script>
28
- <script src="{{rootURL}}assets/client-app.js"></script>
29
- <script src="{{rootURL}}assets/tests.js"></script>
30
-
31
- {{content-for "body-footer"}}
32
- {{content-for "test-body-footer"}}
33
- </body>
34
- </html>
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <title>ClientApp Tests</title>
7
+ <meta name="description" content="">
8
+ <meta name="viewport" content="width=device-width, initial-scale=1">
9
+ <meta id="preloaded-data" data-root-path="/logs" data-preloaded="{}">
10
+
11
+ {{content-for "head"}}
12
+ {{content-for "test-head"}}
13
+
14
+ <link rel="stylesheet" href="{{rootURL}}assets/vendor.css">
15
+ <link rel="stylesheet" href="{{rootURL}}assets/client-app.css">
16
+ <link rel="stylesheet" href="{{rootURL}}assets/test-support.css">
17
+
18
+ {{content-for "head-footer"}}
19
+ {{content-for "test-head-footer"}}
20
+ </head>
21
+ <body>
22
+ {{content-for "body"}}
23
+ {{content-for "test-body"}}
24
+
25
+ <script src="/testem.js" integrity=""></script>
26
+ <script src="{{rootURL}}assets/vendor.js"></script>
27
+ <script src="{{rootURL}}assets/test-support.js"></script>
28
+ <script src="{{rootURL}}assets/client-app.js"></script>
29
+ <script src="{{rootURL}}assets/tests.js"></script>
30
+
31
+ {{content-for "body-footer"}}
32
+ {{content-for "test-body-footer"}}
33
+ </body>
34
+ </html>
@@ -1,26 +1,26 @@
1
- import { module, test } from 'qunit';
2
- import { setupRenderingTest } from 'ember-qunit';
3
- import { render } from '@ember/test-helpers';
4
- import hbs from 'htmlbars-inline-precompile';
5
-
6
- module('Integration | Component | message-info', function(hooks) {
7
- setupRenderingTest(hooks);
8
-
9
- test('it renders', async function(assert) {
10
- // Set any properties with this.set('myProperty', 'value');
11
- // Handle any actions with this.set('myAction', function(val) { ... });
12
-
13
- await render(hbs`{{message-info}}`);
14
-
15
- assert.equal(this.element.textContent.trim(), '');
16
-
17
- // Template block usage:
18
- await render(hbs`
19
- {{#message-info}}
20
- template block text
21
- {{/message-info}}
22
- `);
23
-
24
- assert.equal(this.element.textContent.trim(), 'template block text');
25
- });
26
- });
1
+ import { module, test } from 'qunit';
2
+ import { setupRenderingTest } from 'ember-qunit';
3
+ import { render } from '@ember/test-helpers';
4
+ import hbs from 'htmlbars-inline-precompile';
5
+
6
+ module('Integration | Component | message-info', function(hooks) {
7
+ setupRenderingTest(hooks);
8
+
9
+ test('it renders', async function(assert) {
10
+ // Set any properties with this.set('myProperty', 'value');
11
+ // Handle any actions with this.set('myAction', function(val) { ... });
12
+
13
+ await render(hbs`{{message-info}}`);
14
+
15
+ assert.equal(this.element.textContent.trim(), '');
16
+
17
+ // Template block usage:
18
+ await render(hbs`
19
+ {{#message-info}}
20
+ template block text
21
+ {{/message-info}}
22
+ `);
23
+
24
+ assert.equal(this.element.textContent.trim(), 'template block text');
25
+ });
26
+ });
@@ -1,26 +1,26 @@
1
- import { module, test } from 'qunit';
2
- import { setupRenderingTest } from 'ember-qunit';
3
- import { render } from '@ember/test-helpers';
4
- import hbs from 'htmlbars-inline-precompile';
5
-
6
- module('Integration | Component | message-row', function(hooks) {
7
- setupRenderingTest(hooks);
8
-
9
- test('it renders', async function(assert) {
10
- // Set any properties with this.set('myProperty', 'value');
11
- // Handle any actions with this.set('myAction', function(val) { ... });
12
-
13
- await render(hbs`{{message-row}}`);
14
-
15
- assert.equal(this.element.textContent.trim(), '');
16
-
17
- // Template block usage:
18
- await render(hbs`
19
- {{#message-row}}
20
- template block text
21
- {{/message-row}}
22
- `);
23
-
24
- assert.equal(this.element.textContent.trim(), 'template block text');
25
- });
26
- });
1
+ import { module, test } from 'qunit';
2
+ import { setupRenderingTest } from 'ember-qunit';
3
+ import { render } from '@ember/test-helpers';
4
+ import hbs from 'htmlbars-inline-precompile';
5
+
6
+ module('Integration | Component | message-row', function(hooks) {
7
+ setupRenderingTest(hooks);
8
+
9
+ test('it renders', async function(assert) {
10
+ // Set any properties with this.set('myProperty', 'value');
11
+ // Handle any actions with this.set('myAction', function(val) { ... });
12
+
13
+ await render(hbs`{{message-row}}`);
14
+
15
+ assert.equal(this.element.textContent.trim(), '');
16
+
17
+ // Template block usage:
18
+ await render(hbs`
19
+ {{#message-row}}
20
+ template block text
21
+ {{/message-row}}
22
+ `);
23
+
24
+ assert.equal(this.element.textContent.trim(), 'template block text');
25
+ });
26
+ });
@@ -1,26 +1,26 @@
1
- import { module, test } from 'qunit';
2
- import { setupRenderingTest } from 'ember-qunit';
3
- import { render } from '@ember/test-helpers';
4
- import hbs from 'htmlbars-inline-precompile';
5
-
6
- module('Integration | Component | panel-resizer', function(hooks) {
7
- setupRenderingTest(hooks);
8
-
9
- test('it renders', async function(assert) {
10
- // Set any properties with this.set('myProperty', 'value');
11
- // Handle any actions with this.set('myAction', function(val) { ... });
12
-
13
- await render(hbs`{{panel-resizer}}`);
14
-
15
- assert.equal(this.element.textContent.trim(), '');
16
-
17
- // Template block usage:
18
- await render(hbs`
19
- {{#panel-resizer}}
20
- template block text
21
- {{/panel-resizer}}
22
- `);
23
-
24
- assert.equal(this.element.textContent.trim(), 'template block text');
25
- });
26
- });
1
+ import { module, test } from 'qunit';
2
+ import { setupRenderingTest } from 'ember-qunit';
3
+ import { render } from '@ember/test-helpers';
4
+ import hbs from 'htmlbars-inline-precompile';
5
+
6
+ module('Integration | Component | panel-resizer', function(hooks) {
7
+ setupRenderingTest(hooks);
8
+
9
+ test('it renders', async function(assert) {
10
+ // Set any properties with this.set('myProperty', 'value');
11
+ // Handle any actions with this.set('myAction', function(val) { ... });
12
+
13
+ await render(hbs`{{panel-resizer}}`);
14
+
15
+ assert.equal(this.element.textContent.trim(), '');
16
+
17
+ // Template block usage:
18
+ await render(hbs`
19
+ {{#panel-resizer}}
20
+ template block text
21
+ {{/panel-resizer}}
22
+ `);
23
+
24
+ assert.equal(this.element.textContent.trim(), 'template block text');
25
+ });
26
+ });
@@ -1,26 +1,26 @@
1
- import { module, test } from 'qunit';
2
- import { setupRenderingTest } from 'ember-qunit';
3
- import { render } from '@ember/test-helpers';
4
- import hbs from 'htmlbars-inline-precompile';
5
-
6
- module('Integration | Component | tab-contents', function(hooks) {
7
- setupRenderingTest(hooks);
8
-
9
- test('it renders', async function(assert) {
10
- // Set any properties with this.set('myProperty', 'value');
11
- // Handle any actions with this.set('myAction', function(val) { ... });
12
-
13
- await render(hbs`{{tab-contents}}`);
14
-
15
- assert.equal(this.element.textContent.trim(), '');
16
-
17
- // Template block usage:
18
- await render(hbs`
19
- {{#tab-contents}}
20
- template block text
21
- {{/tab-contents}}
22
- `);
23
-
24
- assert.equal(this.element.textContent.trim(), 'template block text');
25
- });
26
- });
1
+ import { module, test } from 'qunit';
2
+ import { setupRenderingTest } from 'ember-qunit';
3
+ import { render } from '@ember/test-helpers';
4
+ import hbs from 'htmlbars-inline-precompile';
5
+
6
+ module('Integration | Component | tab-contents', function(hooks) {
7
+ setupRenderingTest(hooks);
8
+
9
+ test('it renders', async function(assert) {
10
+ // Set any properties with this.set('myProperty', 'value');
11
+ // Handle any actions with this.set('myAction', function(val) { ... });
12
+
13
+ await render(hbs`{{tab-contents}}`);
14
+
15
+ assert.equal(this.element.textContent.trim(), '');
16
+
17
+ // Template block usage:
18
+ await render(hbs`
19
+ {{#tab-contents}}
20
+ template block text
21
+ {{/tab-contents}}
22
+ `);
23
+
24
+ assert.equal(this.element.textContent.trim(), 'template block text');
25
+ });
26
+ });
@@ -1,26 +1,26 @@
1
- import { module, test } from 'qunit';
2
- import { setupRenderingTest } from 'ember-qunit';
3
- import { render } from '@ember/test-helpers';
4
- import hbs from 'htmlbars-inline-precompile';
5
-
6
- module('Integration | Component | tab-link', function(hooks) {
7
- setupRenderingTest(hooks);
8
-
9
- test('it renders', async function(assert) {
10
- // Set any properties with this.set('myProperty', 'value');
11
- // Handle any actions with this.set('myAction', function(val) { ... });
12
-
13
- await render(hbs`{{tab-link}}`);
14
-
15
- assert.equal(this.element.textContent.trim(), '');
16
-
17
- // Template block usage:
18
- await render(hbs`
19
- {{#tab-link}}
20
- template block text
21
- {{/tab-link}}
22
- `);
23
-
24
- assert.equal(this.element.textContent.trim(), 'template block text');
25
- });
26
- });
1
+ import { module, test } from 'qunit';
2
+ import { setupRenderingTest } from 'ember-qunit';
3
+ import { render } from '@ember/test-helpers';
4
+ import hbs from 'htmlbars-inline-precompile';
5
+
6
+ module('Integration | Component | tab-link', function(hooks) {
7
+ setupRenderingTest(hooks);
8
+
9
+ test('it renders', async function(assert) {
10
+ // Set any properties with this.set('myProperty', 'value');
11
+ // Handle any actions with this.set('myAction', function(val) { ... });
12
+
13
+ await render(hbs`{{tab-link}}`);
14
+
15
+ assert.equal(this.element.textContent.trim(), '');
16
+
17
+ // Template block usage:
18
+ await render(hbs`
19
+ {{#tab-link}}
20
+ template block text
21
+ {{/tab-link}}
22
+ `);
23
+
24
+ assert.equal(this.element.textContent.trim(), 'template block text');
25
+ });
26
+ });