Skip to content

Commit 8e7621c

Browse files
jbailey4crodriguez1a
authored andcommitted
adds tests for bulma-radio (#79)
* fix(components): adds missing checked attr binding * test(components): add test for bulma-radio component * refactor(components): remove conditional yield in bulma-radio * refactor(components): add corresponding template for bulma-radio
1 parent e7de75f commit 8e7621c

File tree

5 files changed

+69
-18
lines changed

5 files changed

+69
-18
lines changed

addon/components/bulma-radio.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import Ember from 'ember';
22
import BulmaInput from '../components/bulma-input';
3-
import layout from '../templates/components/bulma-checkbox';
3+
import layout from '../templates/components/bulma-radio';
44

55
const {
66
get,
@@ -12,16 +12,21 @@ export default BulmaInput.extend({
1212

1313
classNames: ['radio'],
1414
type: 'radio',
15+
1516
// Bindings are not comprehensive. More complex implementations should use a native element with classes applied
1617
classNameBindings: [
17-
'capture',
18-
'checked',
19-
'list'
18+
'checked'
2019
],
2120

2221
init() {
2322
this._super(...arguments);
2423

24+
let defaultAttrBindings = get(this, 'attributeBindings').slice();
25+
26+
defaultAttrBindings.push('checked');
27+
28+
set(this, 'attributeBindings', defaultAttrBindings);
29+
2530
// classNames reset
2631
// Remove the inherited `input` class name (as it breaks the styling)
2732
set(this, 'classNames', get(this, 'classNames').filter((name) => name !== 'input'));
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1 @@
1-
{{#if hasBlock}}
2-
{{yield}}
3-
{{/if}}
1+
{{yield}}

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@
6666
"ember-disable-prototype-extensions": "^1.1.2",
6767
"ember-export-application-global": "^2.0.0",
6868
"ember-load-initializers": "^1.0.0",
69+
"ember-maybe-import-regenerator": "^0.1.6",
70+
"ember-native-dom-helpers": "^0.5.2",
6971
"ember-resolver": "^4.0.0",
7072
"ember-source": "~2.14.1",
7173
"ember-themed-syntax": "^0.1.1",
Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,39 @@
11
import { moduleForComponent, test } from 'ember-qunit';
22
import hbs from 'htmlbars-inline-precompile';
3+
import { find, click } from 'ember-native-dom-helpers';
4+
5+
const sampleRadioButtons = hbs`
6+
{{bulma-radio name="test" value="cool" id="test-cool"}}
7+
8+
{{bulma-radio name="test" value="awesome" id="test-awesome"}}
9+
`;
310

411
moduleForComponent('bulma-radio', 'Integration | Component | bulma radio', {
512
integration: true
613
});
714

8-
test('it renders', function(assert) {
9-
// Set any properties with this.set('myProperty', 'value');
10-
// Handle any actions with this.on('myAction', function(val) { ... });
11-
this.render(hbs`{{bulma-radio}}`);
15+
test('it selects an option', async function(assert) {
16+
this.render(sampleRadioButtons);
17+
18+
await click('#test-cool');
19+
20+
assert.ok(find('#test-cool').checked);
21+
assert.notOk(find('#test-awesome').checked);
22+
23+
await click('#test-awesome');
24+
25+
assert.ok(find('#test-awesome').checked);
26+
assert.notOk(find('#test-cool').checked);
27+
});
28+
29+
test('it renders default selected option', function(assert) {
30+
this.set('isChecked', true);
31+
32+
this.render(hbs`
33+
{{bulma-radio name="test" value="cool" id="test-cool" checked=isChecked}}
34+
35+
{{bulma-radio name="test" value="awesome" id="test-awesome"}}
36+
`);
1237

13-
assert.equal(this.$().text().trim(), '');
38+
assert.ok(find('#test-cool').checked);
1439
});

yarn.lock

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1705,9 +1705,9 @@ chalk@^0.5.1:
17051705
strip-ansi "^0.3.0"
17061706
supports-color "^0.2.0"
17071707

1708-
chalk@^2.0.0, chalk@^2.0.1:
1709-
version "2.1.0"
1710-
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e"
1708+
chalk@^2.0.1:
1709+
version "2.0.1"
1710+
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.0.1.tgz#dbec49436d2ae15f536114e76d14656cdbc0f44d"
17111711
dependencies:
17121712
ansi-styles "^3.1.0"
17131713
escape-string-regexp "^1.0.5"
@@ -2351,11 +2351,12 @@ ember-cli-babel@^5.1.6:
23512351
ember-cli-version-checker "^1.0.2"
23522352
resolve "^1.1.2"
23532353

2354-
ember-cli-babel@^6.0.0, ember-cli-babel@^6.0.0-beta.7, ember-cli-babel@^6.1.0, ember-cli-babel@^6.3.0:
2355-
version "6.7.2"
2356-
resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-6.7.2.tgz#9c0886194266f17a98fe5c536d170878ac287009"
2354+
ember-cli-babel@^6.0.0, ember-cli-babel@^6.0.0-beta.4, ember-cli-babel@^6.0.0-beta.7, ember-cli-babel@^6.1.0, ember-cli-babel@^6.3.0:
2355+
version "6.7.1"
2356+
resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-6.7.1.tgz#98de75cb3eaf3198a80aac36ae82d8ea48c9d91f"
23572357
dependencies:
23582358
amd-name-resolver "0.0.7"
2359+
amd-name-resolver "0.0.6"
23592360
babel-plugin-debug-macros "^0.1.11"
23602361
babel-plugin-ember-modules-api-polyfill "^1.4.1"
23612362
babel-plugin-transform-es2015-modules-amd "^6.24.0"
@@ -2708,6 +2709,22 @@ ember-macro-helpers@^0.15.1:
27082709
ember-cli-test-info "^1.0.0"
27092710
ember-weakmap "^2.0.0"
27102711

2712+
ember-maybe-import-regenerator@^0.1.6:
2713+
version "0.1.6"
2714+
resolved "https://registry.yarnpkg.com/ember-maybe-import-regenerator/-/ember-maybe-import-regenerator-0.1.6.tgz#35d41828afa6d6a59bc0da3ce47f34c573d776ca"
2715+
dependencies:
2716+
broccoli-funnel "^1.0.1"
2717+
broccoli-merge-trees "^1.0.0"
2718+
ember-cli-babel "^6.0.0-beta.4"
2719+
regenerator-runtime "^0.9.5"
2720+
2721+
ember-native-dom-helpers@^0.5.2:
2722+
version "0.5.2"
2723+
resolved "https://registry.yarnpkg.com/ember-native-dom-helpers/-/ember-native-dom-helpers-0.5.2.tgz#ba6123230fc32c3350f90a8f9183584a022215fa"
2724+
dependencies:
2725+
broccoli-funnel "^1.1.0"
2726+
ember-cli-babel "^6.1.0"
2727+
27112728
ember-qunit@^2.1.3:
27122729
version "2.2.0"
27132730
resolved "https://registry.yarnpkg.com/ember-qunit/-/ember-qunit-2.2.0.tgz#3cdf400031c93a38de781a7304819738753b7f99"
@@ -5588,6 +5605,10 @@ regenerator-runtime@^0.10.0:
55885605
version "0.10.5"
55895606
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
55905607

5608+
regenerator-runtime@^0.9.5:
5609+
version "0.9.6"
5610+
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz#d33eb95d0d2001a4be39659707c51b0cb71ce029"
5611+
55915612
55925613
version "0.9.11"
55935614
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.11.tgz#3a7d067520cb7b7176769eb5ff868691befe1283"

0 commit comments

Comments
 (0)