|
1 | 1 |
|
2 | | -import Flow from require "lapis.flow" |
| 2 | +import Flow, is_flow from require "lapis.flow" |
3 | 3 |
|
4 | 4 | describe "lapis.flow", -> |
5 | 5 | local base_object |
@@ -185,3 +185,40 @@ describe "lapis.flow", -> |
185 | 185 |
|
186 | 186 | assert.same {}, obj |
187 | 187 | assert.same {[multiple]: {1, 2}}, f[MEMO_KEY] |
| 188 | + |
| 189 | + describe "is_flow", -> |
| 190 | + it "returns false for nil", -> |
| 191 | + assert.false is_flow nil |
| 192 | + |
| 193 | + it "returns false for false", -> |
| 194 | + assert.false is_flow false |
| 195 | + |
| 196 | + it "returns true for Flow class", -> |
| 197 | + assert.true is_flow Flow |
| 198 | + |
| 199 | + it "returns true for class extending Flow", -> |
| 200 | + class MyFlow extends Flow |
| 201 | + assert.true is_flow MyFlow |
| 202 | + |
| 203 | + it "returns true for deeply nested Flow subclass", -> |
| 204 | + class FirstFlow extends Flow |
| 205 | + class SecondFlow extends FirstFlow |
| 206 | + class ThirdFlow extends SecondFlow |
| 207 | + |
| 208 | + assert.true is_flow SecondFlow |
| 209 | + assert.true is_flow ThirdFlow |
| 210 | + |
| 211 | + it "returns false for regular table", -> |
| 212 | + assert.false is_flow {} |
| 213 | + |
| 214 | + it "returns false for regular class", -> |
| 215 | + class BaseClass |
| 216 | + class ChildClass extends BaseClass |
| 217 | + |
| 218 | + assert.false is_flow BaseClass |
| 219 | + assert.false is_flow ChildClass |
| 220 | + |
| 221 | + it "returns false when passing a Flow instance directly", -> |
| 222 | + class MyFlow extends Flow |
| 223 | + f = MyFlow {} |
| 224 | + assert.false is_flow f |
0 commit comments