Skip to content

Commit a1425bf

Browse files
Merge pull request #42 from RobotlegsJS/code-coverage
Improve code coverage to reach 100%
2 parents 378cc3f + 5e56a3c commit a1425bf

14 files changed

+90
-39
lines changed

CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,18 @@
1010

1111
- [x] **printWidth** should be around **140** characters per line.
1212

13-
- [ ] Improve Code Coverage to reach 100%.
13+
- [x] Improve Code Coverage to reach 100%.
14+
15+
- [ ] Move `event` package to an external dependency.
1416

1517
- [ ] Migrate [original documentation](https://github.com/robertpenner/as3-signals#readme) and adapt it to TypeScript.
1618

1719
## Signals 0.0.1
1820

1921
### v0.0.13
2022

23+
- Improve code coverage to reach 100% (see #42).
24+
2125
- Use `rimraf` instead of `rm -rf` (see #41).
2226

2327
- Update Prettier rules (see #40).

dist/signals.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/org/osflash/signals/DeluxeSignal.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@ export class DeluxeSignal extends PrioritySignal {
3333
* NOTE: Subclasses cannot call super.apply(null, valueClasses),
3434
* but this constructor has logic to support super(valueClasses).
3535
*/
36-
constructor(target: Object = null, ...valueClasses) {
36+
constructor(target: Object = null, ...valueClasses: any[]) {
3737
// Cannot use super.apply(null, valueClasses), so allow the subclass to call super(valueClasses).
3838
valueClasses = valueClasses.length === 1 && valueClasses[0] instanceof Array ? valueClasses[0] : valueClasses;
3939

40-
super(valueClasses);
40+
/* istanbul ignore next */ super(valueClasses);
4141

4242
// @CHANGED - this was the first call in the constructor
4343
// Typescript does not allow "this" to be called before super
@@ -63,7 +63,7 @@ export class DeluxeSignal extends PrioritySignal {
6363
* @throws ArgumentError <code>ArgumentError</code>: Value object is not an instance of the appropriate valueClasses Class.
6464
*/
6565
/*override*/
66-
public dispatch(...valueObjects): void {
66+
public dispatch(...valueObjects: any[]): void {
6767
// Validate value objects against pre-defined value classes.
6868
let numValueClasses: number = this._valueClasses.length;
6969
let numValueObjects: number = valueObjects.length;
@@ -114,6 +114,7 @@ export class DeluxeSignal extends PrioritySignal {
114114
while (currentTarget && currentTarget.hasOwnProperty("parent")) {
115115
currentTarget = (<any>currentTarget).parent;
116116

117+
/* istanbul ignore else */
117118
if ((<any>currentTarget).onEventBubbled !== null) {
118119
event.currentTarget = currentTarget;
119120

src/org/osflash/signals/IOnceSignal.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export interface IOnceSignal {
3131
* @param valueObjects Any number of parameters to send to listeners. Will be type-checked against valueClasses.
3232
* @throws ArgumentError <code>ArgumentError</code>: valueObjects are not compatible with valueClasses.
3333
*/
34-
dispatch(...valueObjects): void;
34+
dispatch(...valueObjects: any[]): void;
3535

3636
/**
3737
* Unsubscribes a listener from the signal.

src/org/osflash/signals/IPrioritySignal.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export interface IPrioritySignal extends ISignal {
1818
* @return a ISlot, which contains the Function passed as the parameter
1919
* @see ISlot
2020
*/
21-
addWithPriority(listener: Function, priority: number): ISlot;
21+
addWithPriority(listener: Function, priority?: number): ISlot;
2222

2323
/**
2424
* Subscribes a one-time listener for this signal.
@@ -34,5 +34,5 @@ export interface IPrioritySignal extends ISignal {
3434
* @return a ISlot, which contains the Function passed as the parameter
3535
* @see ISlot
3636
*/
37-
addOnceWithPriority(listener: Function, priority: number): ISlot;
37+
addOnceWithPriority(listener: Function, priority?: number): ISlot;
3838
}

src/org/osflash/signals/MonoSignal.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ export class MonoSignal implements ISignal {
2727
* NOTE: Subclasses cannot call super.apply(null, valueClasses),
2828
* but this constructor has logic to support super(valueClasses).
2929
*/
30-
constructor(...valueClasses) {
30+
constructor(...valueClasses: any[]) {
3131
// Cannot use super.apply(null, valueClasses), so allow the subclass to call super(valueClasses).
3232
this.valueClasses = valueClasses.length === 1 && valueClasses[0] instanceof Array ? valueClasses[0] : valueClasses;
3333
}
@@ -105,7 +105,7 @@ export class MonoSignal implements ISignal {
105105
* @throws ArgumentError <code>ArgumentError</code>: Incorrect number of arguments.
106106
* @throws ArgumentError <code>ArgumentError</code>: Value object is not an instance of the appropriate valueClasses Class.
107107
*/
108-
public dispatch(...valueObjects): void {
108+
public dispatch(...valueObjects: any[]): void {
109109
// If valueClasses is empty, value objects are not type-checked.
110110
let numValueClasses: number = this._valueClasses.length;
111111
let numValueObjects: number = valueObjects.length;

src/org/osflash/signals/OnceSignal.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export class OnceSignal implements IOnceSignal {
3434
* NOTE: In AS3, subclasses cannot call super.apply(null, valueClasses),
3535
* but this constructor has logic to support super(valueClasses).
3636
*/
37-
constructor(...valueClasses) {
37+
constructor(...valueClasses: any[]) {
3838
// Cannot use super.apply(null, valueClasses), so allow the subclass to call super(valueClasses).
3939
this.valueClasses = valueClasses.length === 1 && valueClasses[0] instanceof Array ? valueClasses[0] : valueClasses;
4040
}
@@ -101,7 +101,7 @@ export class OnceSignal implements IOnceSignal {
101101
* @throws ArgumentError <code>ArgumentError</code>: Incorrect number of arguments.
102102
* @throws ArgumentError <code>ArgumentError</code>: Value object is not an instance of the appropriate valueClasses Class.
103103
*/
104-
public dispatch(...valueObjects): void {
104+
public dispatch(...valueObjects: any[]): void {
105105
// If valueClasses is empty, value objects are not type-checked.
106106
let numValueClasses: number = this._valueClasses.length;
107107
let numValueObjects: number = valueObjects.length;

src/org/osflash/signals/PrioritySignal.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,6 @@ import { ISlot } from "./ISlot";
44
import { Slot } from "./Slot";
55

66
export class PrioritySignal extends Signal implements IPrioritySignal {
7-
constructor(...valueClasses) {
8-
// Cannot use super.apply(null, valueClasses), so allow the subclass to call super(valueClasses).
9-
valueClasses = valueClasses.length === 1 && valueClasses[0] instanceof Array ? valueClasses[0] : valueClasses;
10-
11-
super(valueClasses);
12-
}
13-
147
/**
158
* @inheritDoc
169
* @throws flash.errors.IllegalOperationError <code>IllegalOperationError</code>: You cannot addOnce() then add() the same listener without removing the relationship first.
@@ -34,7 +27,7 @@ export class PrioritySignal extends Signal implements IPrioritySignal {
3427
return this.registerListenerWithPriority(listener, once);
3528
}
3629

37-
protected registerListenerWithPriority(listener: Function, once: boolean = false, priority: number = 0): ISlot {
30+
protected registerListenerWithPriority(listener: Function, once: boolean, priority: number = 0): ISlot {
3831
if (this.registrationPossible(listener, once)) {
3932
let slot: ISlot = new Slot(listener, this, once, priority);
4033
this.slots = this.slots.insertWithPriority(slot);

src/org/osflash/signals/Promise.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export class Promise extends OnceSignal {
2222
* @throws flash.errors.IllegalOperationError <code>IllegalOperationError</code>: You cannot dispatch() a Promise more than once
2323
*/
2424
/*override*/
25-
public dispatch(...valueObjects): void {
25+
public dispatch(...valueObjects: any[]): void {
2626
if (this.isDispatched) {
2727
throw new Error("You cannot dispatch() a Promise more than once");
2828
} else {

src/org/osflash/signals/Signal.ts

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,6 @@ import { ISlot } from "./ISlot";
1919
* Project home: <a target="_top" href="http://github.com/robertpenner/as3-signals/">http://github.com/robertpenner/as3-signals/</a>
2020
*/
2121
export class Signal extends OnceSignal implements ISignal {
22-
/**
23-
* Creates a Signal instance to dispatch value objects.
24-
* @param valueClasses Any number of class references that enable type checks in dispatch().
25-
* For example, new Signal(String, uint)
26-
* would allow: signal.dispatch("the Answer", 42)
27-
* but not: signal.dispatch(true, 42.5)
28-
* nor: signal.dispatch()
29-
*
30-
* NOTE: In AS3, subclasses cannot call super.apply(null, valueClasses),
31-
* but this constructor has logic to support super(valueClasses).
32-
*/
33-
constructor(...valueClasses) {
34-
// Cannot use super.apply(null, valueClasses), so allow the subclass to call super(valueClasses).
35-
valueClasses = valueClasses.length === 1 && valueClasses[0] instanceof Array ? valueClasses[0] : valueClasses;
36-
37-
super(valueClasses);
38-
}
39-
4022
/**
4123
* @inheritDoc
4224
* @throws flash.errors.IllegalOperationError <code>IllegalOperationError</code>: You cannot addOnce() then add() the same listener without removing the relationship first.

0 commit comments

Comments
 (0)