00:39:24  * pfrazejoined
00:45:22  * fotoveritejoined
01:15:41  * phatedquit (Remote host closed the connection)
01:17:33  * fotoveritequit (Quit: fotoverite)
01:54:22  * shamaquit (Quit: (╯°□°)╯︵ɐɯɐɥs)
02:07:51  * ekristenquit (Quit: ekristen)
02:12:29  * phatedjoined
02:16:55  * phatedquit (Ping timeout: 244 seconds)
02:38:23  * warbrettquit (Quit: Connection closed for inactivity)
04:00:32  * phatedjoined
04:04:55  * phatedquit (Ping timeout: 244 seconds)
05:16:18  * phatedjoined
05:21:15  * phatedquit (Ping timeout: 276 seconds)
05:41:14  * pfrazequit (Remote host closed the connection)
05:51:44  * pfrazejoined
06:09:20  * pfrazequit (Remote host closed the connection)
08:41:14  * yorick__joined
08:44:01  * yorickquit (Ping timeout: 240 seconds)
08:51:34  * yorickjoined
08:53:18  * yorick__quit (Ping timeout: 248 seconds)
10:36:12  * vweeversjoined
10:52:58  * fotoveritejoined
14:03:16  * fotoveritequit (Quit: fotoverite)
14:03:51  * fotoveritejoined
15:28:52  * trevnorrisquit (Ping timeout: 252 seconds)
15:29:00  * substacktopic: Unofficial browserling/testling mad science channel. For official help /join #browserling
15:29:29  * wagequit (Ping timeout: 252 seconds)
15:30:05  * gildeanquit (Ping timeout: 252 seconds)
15:30:05  * hij1nx_quit (Ping timeout: 252 seconds)
15:31:35  * hij1nxjoined
15:31:57  * gildeanjoined
15:37:41  * trevnorrisjoined
15:37:47  * pfrazejoined
15:38:04  * wagejoined
16:11:12  * owenb___________joined
16:12:03  * mmckegg_joined
16:12:18  * jbenetquit (Ping timeout: 246 seconds)
16:12:18  * owenb__________quit (Ping timeout: 246 seconds)
16:12:19  * calvinmetcalfquit (Ping timeout: 246 seconds)
16:12:19  * ferossquit (Ping timeout: 246 seconds)
16:12:19  * isaacsquit (Ping timeout: 246 seconds)
16:12:19  * dvabrquit (Ping timeout: 246 seconds)
16:12:20  * hughskquit (Ping timeout: 246 seconds)
16:12:20  * mmckeggquit (Ping timeout: 246 seconds)
16:12:21  * McJesisquit (Ping timeout: 246 seconds)
16:12:32  * mmckegg_changed nick to mmckegg
16:12:38  * isaacsjoined
16:13:05  * jbenet_joined
16:13:11  * dvabrjoined
16:14:16  * jbenet_changed nick to jbenet
16:15:16  * ferossjoined
16:15:32  * hughskjoined
16:15:57  * McJesusjoined
16:17:14  * calvinmetcalfjoined
18:10:01  <mikolalysenko>dlmanning: just make a function
18:10:31  <mikolalysenko>var myFancyTests = wrapTape(t)
18:10:38  <mikolalysenko>myFancyTests.myCustomAssertion(...)
18:11:14  <dlmanning>mikolalysenko : yeah, but I want to control what's passed to this._assert
18:11:38  <mikolalysenko>you could also make a wrapper over tape
18:11:48  <dlmanning>Yes, I've seen other people doing that
18:12:02  <dlmanning>But it isn't immediately obvious to me why that's better
18:12:45  <dlmanning>I suppose just because then I wouldn't be dependent on tape's implementation details
18:17:36  <dlmanning>Basically I need more control over the output of "what went wrong" than basic assertions give me
18:32:31  <jfhbrook>that sounds annoying
18:33:00  <jfhbrook>it'd be cool if you could punch tape's TestAssertionThing prototype
18:38:01  <dlmanning>If I could punch it?
18:39:46  <jfhbrook>yeah
18:40:12  <dlmanning>are we being silly? :)
18:40:30  <jfhbrook>not quite
18:40:37  <jfhbrook>I don't know much about tape so give me a second
18:40:43  <jfhbrook>oh yes
18:41:21  <jfhbrook>so tape.TestContext.prototype.myCustomAssert = function() { }; tape.test((t) => { // g2g?
18:41:46  <jfhbrook>I don't know that tape has a constructor for t here
18:43:55  <jfhbrook>https://github.com/substack/tape/blob/master/index.js#L97
18:44:33  <dlmanning>Yeah, that's the constructor whose prototype I patched
18:44:50  <jfhbrook>https://github.com/substack/tape/blob/master/lib/test.js#L275-L289
18:44:53  <jfhbrook>yeah
18:44:58  <jfhbrook>that seems like the best way to do it to me
18:45:13  <dlmanning>Well, thanks for the vote of confidence :)
18:45:39  <jfhbrook>heh
18:45:57  <jfhbrook>sorry, all I saw was wrapTape()
18:46:03  <jfhbrook>because of connect/disconnect spam
18:46:04  <jfhbrook>forgive me!
18:46:19  <dlmanning>Ah, no worries, my original question was yesterday
18:46:52  <jfhbrook>I think the only real reason not to do that is the "don't punch global(-ish) prototypes" rule
18:47:02  <jfhbrook>this variation being "don't punch import properties"
18:47:18  <jfhbrook>but I think that rule applies less in testing
18:47:18  <dlmanning>yeah, that's naturally a concern
18:47:26  <jfhbrook>after all people use chai.should()
18:47:31  <dlmanning>right, this is a pretty limited use case
18:47:41  <jfhbrook>(5).should.be.a.number; // :v
18:48:13  <dlmanning>It seems to me like it would not be a horrible thing for tape to have an api for creating custom assertions
18:48:32  <jfhbrook>like some sugar around what you ended up doing?
18:48:46  <dlmanning>An official sanctioned way of doing what I did, yeah
18:48:52  <jfhbrook>I mean
18:48:58  <jfhbrook>Test is exposed publicly
18:49:04  <jfhbrook>that's all the blessing *I*'d want
18:49:21  <dlmanning>Well, substack's response yesterday was wary
18:49:35  <dlmanning>Like... you can probably get away with it, but you're suspect
18:49:39  <jfhbrook>yeah, I mean, I think substack was thinking packaging for reuse
18:49:42  <dlmanning>And I get that
18:50:04  <jfhbrook>I'm not sure how wrapping would work, tape doesn't look written in a way such that you can make your own instance, *for* instance
18:50:23  <jfhbrook>oh, you could do a decorator pattern
18:50:38  <dlmanning>Here's what one person did: https://github.com/atabel/extend-tape
18:50:40  <jfhbrook>tape.test(addCustomAsserts((t) => {}))
18:51:27  <jfhbrook>oh, you *can* create your own tape instance, apparently?
18:51:32  <dlmanning>yes
18:51:43  <jfhbrook>oh, no, I see how it works
18:51:53  <jfhbrook>that's not bad
18:52:07  <dlmanning>You can create your own harness, but he's making his own thing and merging it with tape
18:52:17  <jfhbrook>I don't like lambda args sans parens though
18:52:28  <dlmanning>kids these days
18:52:31  <jfhbrook>yeah, this looks like a variation of the test handler decorator
18:52:54  <jfhbrook>I don't really like es6'd-the-fuck-out code
18:52:59  <substack>function wrapTape (cb) { return function (t) { t.mywhateverthing = ...; cb(t) })
18:53:34  <dlmanning>substack : yeah, again, doesn't give me control over what gets passed to this._assert
18:53:51  <jfhbrook>what do you mean by that dlmanning ?
18:54:06  <jfhbrook>you can't do that by punching the instance?
18:54:09  <dlmanning>I mean I want to control what shows up in the actual / expected fields
18:54:49  <jfhbrook>I mean, regardless of whether it's t or t's prototype you should still be able to write a function that calls this._assert right?
18:54:59  <dlmanning>Oh, yeah nevermind. I'm being dumb
18:56:04  <dlmanning>did read that carefully enough
18:57:05  <jfhbrook>punching the prototype does mean you get https://github.com/atabel/extend-tape/blob/master/src/index.js#L12 for free
18:57:08  <jfhbrook>which is kinda cool
18:57:48  <dlmanning>yeah, either way I'm depending on private api
18:58:08  <dlmanning>so adding to the instance or the prototype seems roughly equally bad
18:59:07  <dlmanning>If I only add to the instance of course I don't pollute the exported tape global, but that isn't really a big deal for a test script
19:01:57  <dlmanning>jfhbrook : I didn't immediately understood that by "punching" you meant "adding methods onto"
19:02:12  <dlmanning>s/stood/stand
19:03:36  <jfhbrook>oh yeah
19:04:55  <dlmanning>I thought you were saying it would be cool if I could somehow express aggression toward tape's internals
19:17:20  <jfhbrook>hahaha, no
19:17:31  <jfhbrook>monkey punching is just a synonym for monkey patching
19:20:06  * Boobileahjoined
19:22:06  <dlmanning>ah
19:49:47  * peutetrejoined
20:36:17  * peutetrequit (Quit: ...)
21:33:08  * domanicjoined
21:35:29  * domanicquit (Read error: Connection reset by peer)
22:12:57  * domanicjoined
22:14:32  * Boobileahquit (Quit: Connection closed for inactivity)
23:35:20  * phatedjoined