Skip to content

Commit 087b2cf

Browse files
committed
Test that all named exports are detected by Node
1 parent 8d32c71 commit 087b2cf

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

test/package.coffee

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
return if window? or testingBrowser?
2+
3+
{EventEmitter} = require 'events'
4+
{join} = require 'path'
5+
{cwd} = require 'process'
6+
7+
8+
test "the coffeescript package exposes all members as named exports in Node", ->
9+
packageEntry = join cwd(), 'lib/coffeescript/index.js'
10+
11+
requiredPackage = require packageEntry
12+
requiredKeys = Object.keys requiredPackage
13+
14+
importedPackage = await import(packageEntry)
15+
importedKeys = new Set Object.keys(importedPackage)
16+
17+
# In `command.coffee`, CoffeeScript extends a `new EventEmitter`;
18+
# we want to ignore these additional added keys.
19+
eventEmitterKeys = new Set Object.getOwnPropertyNames(Object.getPrototypeOf(new EventEmitter))
20+
21+
for key in requiredKeys when not eventEmitterKeys.has(key)
22+
# Use `eq` test so that missing keys have their names printed in the error message.
23+
eq (if importedKeys.has(key) then key else undefined), key

0 commit comments

Comments
 (0)