diff --git a/packages/esm-amd-loader/test/src/suite.ts b/packages/esm-amd-loader/test/src/suite.ts index 55616f599..be57d8d74 100644 --- a/packages/esm-amd-loader/test/src/suite.ts +++ b/packages/esm-amd-loader/test/src/suite.ts @@ -38,6 +38,7 @@ const define = window.define; interface Window { executed: {[url: string]: true}; checkExecuted: (key: string) => void; + executionOrder: string[]; } window.checkExecuted = (key) => { @@ -253,3 +254,16 @@ suite('meta.url', () => { }); }); }); + +// Test for https://github.com/Polymer/tools/issues/335 +suite.skip('dependency ordering', () => { + setup(() => { + window.executionOrder = []; // only used by these tests. + }); + test('all else being equal, dependencies execute in import order', (done) => { + define(['../race/start.js'], () => { + assert.deepEqual(window.executionOrder, ['baz', 'foo', 'bar', 'start']); + done(); + }); + }); +}); diff --git a/packages/esm-amd-loader/test/static/race/bar.js b/packages/esm-amd-loader/test/static/race/bar.js new file mode 100644 index 000000000..77b940bd2 --- /dev/null +++ b/packages/esm-amd-loader/test/static/race/bar.js @@ -0,0 +1,3 @@ +define([], function() { + window.executionOrder.push('bar'); +}); diff --git a/packages/esm-amd-loader/test/static/race/baz.js b/packages/esm-amd-loader/test/static/race/baz.js new file mode 100644 index 000000000..b801e5467 --- /dev/null +++ b/packages/esm-amd-loader/test/static/race/baz.js @@ -0,0 +1,3 @@ +define([], function() { + window.executionOrder.push('baz'); +}); diff --git a/packages/esm-amd-loader/test/static/race/foo.js b/packages/esm-amd-loader/test/static/race/foo.js new file mode 100644 index 000000000..e2879425a --- /dev/null +++ b/packages/esm-amd-loader/test/static/race/foo.js @@ -0,0 +1,3 @@ +define(['./baz.js'], function(baz) { + window.executionOrder.push('foo'); +}); diff --git a/packages/esm-amd-loader/test/static/race/start.js b/packages/esm-amd-loader/test/static/race/start.js new file mode 100644 index 000000000..e2073903d --- /dev/null +++ b/packages/esm-amd-loader/test/static/race/start.js @@ -0,0 +1,4 @@ + +define(['./foo.js', './bar.js'], function(foo, bar, baz) { + window.executionOrder.push('start'); +});