From 96205fc60761aabb5275222b717f005c8e9fba4a Mon Sep 17 00:00:00 2001 From: Patrick Steele-Idem Date: Mon, 22 Sep 2014 11:46:18 -0600 Subject: [PATCH] data-provider attr is now always an expression --- README.md | 2 +- package.json | 26 +-- ...er-async-tests.js => render-async-test.js} | 167 +++++++----------- .../{render-rhtml-tests.js => render-test.js} | 0 ...ender-rxml-tests.js => render-xml-test.js} | 0 test/test-project/hello-async.marko | 4 +- .../html-templates/async-fragment-args.marko | 4 +- .../async-fragment-data-providers.marko | 6 +- ...sync-fragment-function-data-provider.marko | 4 +- .../async-fragment-macros.marko | 6 +- .../async-fragment-ordering.marko | 8 +- .../async-fragment-ordering2.marko | 20 +-- .../async-fragment-promise.marko | 4 +- .../async-fragment-timeout-message.marko | 2 +- .../async-fragment-args.marko.xml | 4 +- ...-fragment-function-data-provider.marko.xml | 6 +- 16 files changed, 116 insertions(+), 147 deletions(-) rename test/{render-async-tests.js => render-async-test.js} (67%) rename test/{render-rhtml-tests.js => render-test.js} (100%) rename test/{render-rxml-tests.js => render-xml-test.js} (100%) diff --git a/README.md b/README.md index ebafa4fe3..7a1cfb186 100644 --- a/README.md +++ b/README.md @@ -1011,7 +1011,7 @@ template.render({ ``` ```html - diff --git a/package.json b/package.json index 39e54773d..ecddaef37 100644 --- a/package.json +++ b/package.json @@ -23,19 +23,19 @@ "events": "^1.0.2", "htmlparser2": "^3.7.2", "minimatch": "^0.2.14", - "property-handlers": "^0.2.1-beta", - "raptor-args": "^1.0.0-beta", - "raptor-json": "^1.0.0-beta", - "raptor-logging": "^1.0.0-beta", - "raptor-modules": "^1.0.0-beta", - "raptor-polyfill": "^1.0.0-beta", - "raptor-promises": "^1.0.0-beta", - "raptor-regexp": "^1.0.0-beta", - "async-writer": "^1.0.0-beta", - "raptor-strings": "^1.0.0-beta", + "property-handlers": "^0.2.1", + "raptor-args": "^1.0.0", + "raptor-json": "^1.0.0", + "raptor-logging": "^1.0.0", + "raptor-modules": "^1.0.0", + "raptor-polyfill": "^1.0.0", + "raptor-promises": "^1.0.0", + "raptor-regexp": "^1.0.0", + "async-writer": "^1.0.0", + "raptor-strings": "^1.0.0", "marko-async": "^1.1.0", "marko-layout": "^1.1.0", - "raptor-util": "^1.0.0-beta", + "raptor-util": "^1.0.0", "sax": "^0.6.0" }, "devDependencies": { @@ -43,8 +43,8 @@ "dustjs-linkedin": "^2.3.4", "jshint": "^2.5.0", "mocha": "~1.15.1", - "raptor-cache": "^1.0.0-beta", - "raptor-data-providers": "^1.0.0-beta", + "raptor-cache": "^1.0.0", + "raptor-data-providers": "^1.0.0", "through": "^2.3.4" }, "license": "Apache License v2.0", diff --git a/test/render-async-tests.js b/test/render-async-test.js similarity index 67% rename from test/render-async-tests.js rename to test/render-async-test.js index e619c476f..a02eb4cc4 100644 --- a/test/render-async-tests.js +++ b/test/render-async-test.js @@ -2,7 +2,6 @@ var chai = require('chai'); chai.Assertion.includeStack = true; require('chai').should(); -var expect = require('chai').expect; var nodePath = require('path'); var fs = require('fs'); @@ -42,11 +41,6 @@ function testRender(path, data, done, options) { require('../compiler').defaultOptions.checkUpToDate = false; - if (options.dataProviders) { - var dataProviders = require('raptor-data-providers').forContext(out); - dataProviders.register(options.dataProviders); - } - marko.render(inputPath, data, out) .on('end', function() { var output = out.getOutput(); @@ -92,101 +86,85 @@ describe('marko/marko-async' , function() { }); it('should render a simple template with async fragments correctly (1)', function(done) { - testRender('test-project/html-templates/async-fragment-ordering.marko', {}, done, { - dataProviders: { - 'D1': delayedDataProvider(100), - 'D2': delayedDataProvider(300), - 'D3': delayedDataProvider(200), - 'D4': delayedDataProvider(800) - } - }); + testRender('test-project/html-templates/async-fragment-ordering.marko', { + 'D1': delayedDataProvider(100), + 'D2': delayedDataProvider(300), + 'D3': delayedDataProvider(200), + 'D4': delayedDataProvider(800) + }, done); }); it('should render a simple template with async fragments correctly (2)', function(done) { - testRender('test-project/html-templates/async-fragment-ordering.marko', {}, done, { - dataProviders: { - 'D1': delayedDataProvider(100), - 'D2': delayedDataProvider(200), - 'D3': delayedDataProvider(300), - 'D4': delayedDataProvider(150) - } - }); + testRender('test-project/html-templates/async-fragment-ordering.marko', { + 'D1': delayedDataProvider(100), + 'D2': delayedDataProvider(200), + 'D3': delayedDataProvider(300), + 'D4': delayedDataProvider(150) + }, done); }); it('should render a simple template with async fragments correctly (3)', function(done) { - testRender('test-project/html-templates/async-fragment-ordering.marko', {}, done, { - dataProviders: { - 'D1': delayedDataProvider(800), - 'D2': delayedDataProvider(200), - 'D3': delayedDataProvider(300), - 'D4': delayedDataProvider(100) - } - }); + testRender('test-project/html-templates/async-fragment-ordering.marko', { + 'D1': delayedDataProvider(800), + 'D2': delayedDataProvider(200), + 'D3': delayedDataProvider(300), + 'D4': delayedDataProvider(100) + }, done); }); it('should render a simple template with async fragments correctly (4)', function(done) { - testRender('test-project/html-templates/async-fragment-ordering.marko', {}, done, { - dataProviders: { - 'D1': delayedDataProvider(800), - 'D2': delayedDataProvider(300), - 'D3': delayedDataProvider(200), - 'D4': delayedDataProvider(100) - } - }); + testRender('test-project/html-templates/async-fragment-ordering.marko', { + 'D1': delayedDataProvider(800), + 'D2': delayedDataProvider(300), + 'D3': delayedDataProvider(200), + 'D4': delayedDataProvider(100) + }, done); }); it('should render a less simple template with async fragments correctly (1)', function(done) { - testRender('test-project/html-templates/async-fragment-ordering2.marko', {}, done, { - dataProviders: { - 'D1': delayedDataProvider(100), - 'D2': delayedDataProvider(300), - 'D3': delayedDataProvider(200), - 'D4': delayedDataProvider(800), - 'D5': delayedDataProvider(900), - 'D6': delayedDataProvider(100), - 'D7': delayedDataProvider(50) - } - }); + testRender('test-project/html-templates/async-fragment-ordering2.marko', { + 'D1': delayedDataProvider(100), + 'D2': delayedDataProvider(300), + 'D3': delayedDataProvider(200), + 'D4': delayedDataProvider(800), + 'D5': delayedDataProvider(900), + 'D6': delayedDataProvider(100), + 'D7': delayedDataProvider(50) + }, done); }); it('should render a less simple template with async fragments correctly (2)', function(done) { - testRender('test-project/html-templates/async-fragment-ordering2.marko', {}, done, { - dataProviders: { - 'D1': delayedDataProvider(100), - 'D2': delayedDataProvider(300), - 'D3': delayedDataProvider(200), - 'D4': delayedDataProvider(800), - 'D5': delayedDataProvider(900), - 'D6': delayedDataProvider(100), - 'D7': delayedDataProvider(200) - } - }); + testRender('test-project/html-templates/async-fragment-ordering2.marko', { + 'D1': delayedDataProvider(100), + 'D2': delayedDataProvider(300), + 'D3': delayedDataProvider(200), + 'D4': delayedDataProvider(800), + 'D5': delayedDataProvider(900), + 'D6': delayedDataProvider(100), + 'D7': delayedDataProvider(200) + }, done); }); it('should render a less simple template with async fragments correctly (3)', function(done) { - testRender('test-project/html-templates/async-fragment-ordering2.marko', {}, done, { - dataProviders: { - 'D1': delayedDataProvider(900), - 'D2': delayedDataProvider(300), - 'D3': delayedDataProvider(200), - 'D4': delayedDataProvider(800), - 'D5': delayedDataProvider(100), - 'D6': delayedDataProvider(100), - 'D7': delayedDataProvider(200) - } - }); + testRender('test-project/html-templates/async-fragment-ordering2.marko', { + 'D1': delayedDataProvider(900), + 'D2': delayedDataProvider(300), + 'D3': delayedDataProvider(200), + 'D4': delayedDataProvider(800), + 'D5': delayedDataProvider(100), + 'D6': delayedDataProvider(100), + 'D7': delayedDataProvider(200) + }, done); }); it("should allow for using macros inside async fragments", function(done) { - testRender('test-project/html-templates/async-fragment-macros.marko', {}, done, { - dataProviders: { - 'D1': delayedDataProvider(100) - } - }); + testRender('test-project/html-templates/async-fragment-macros.marko', { + 'D1': delayedDataProvider(100) + }, done); }); it("should allow for global data providers", function(done) { - require('raptor-data-providers').register({ + testRender('test-project/html-templates/async-fragment-data-providers.marko', { 'sharedData': function(args, done) { var deferred = require('raptor-promises').defer(); @@ -197,14 +175,9 @@ describe('marko/marko-async' , function() { }, 100); return deferred.promise; - } - }); - - testRender('test-project/html-templates/async-fragment-data-providers.marko', {}, done, { - dataProviders: { - 'contextData': delayedDataProvider(100, {name: "testContextData"}) - } - }); + }, + 'contextData': delayedDataProvider(100, {name: "testContextData"}) + }, done); }); it("should allow for data args", function(done) { @@ -233,15 +206,13 @@ describe('marko/marko-async' , function() { }; - testRender('test-project/html-templates/async-fragment-args.marko', {}, done, { - dataProviders: { - 'userInfo': function(arg, done) { - setTimeout(function() { - done(null, users[arg.userId]); - }, 100); - } + testRender('test-project/html-templates/async-fragment-args.marko', { + 'userInfo': function(arg, done) { + setTimeout(function() { + done(null, users[arg.userId]); + }, 100); } - }); + }, done); }); it("should allow a data provider to be a promise", function(done) { @@ -251,13 +222,11 @@ describe('marko/marko-async' , function() { deferred.resolve('Test promise'); }, 200); - testRender('test-project/html-templates/async-fragment-promise.marko', {}, done, { - dataProviders: { - 'promiseData': function(arg, done) { - return deferred.promise; - } + testRender('test-project/html-templates/async-fragment-promise.marko', { + 'promiseData': function(arg, done) { + return deferred.promise; } - }); + }, done); }); it("should allow functions that return promises as data providers", function(done) { diff --git a/test/render-rhtml-tests.js b/test/render-test.js similarity index 100% rename from test/render-rhtml-tests.js rename to test/render-test.js diff --git a/test/render-rxml-tests.js b/test/render-xml-test.js similarity index 100% rename from test/render-rxml-tests.js rename to test/render-xml-test.js diff --git a/test/test-project/hello-async.marko b/test/test-project/hello-async.marko index abf3a0315..0fb1adea1 100644 --- a/test/test-project/hello-async.marko +++ b/test/test-project/hello-async.marko @@ -1,3 +1,3 @@ - + Hello $name! - \ No newline at end of file + diff --git a/test/test-project/html-templates/async-fragment-args.marko b/test/test-project/html-templates/async-fragment-args.marko index d157949ce..2a118fb75 100644 --- a/test/test-project/html-templates/async-fragment-args.marko +++ b/test/test-project/html-templates/async-fragment-args.marko @@ -1,6 +1,6 @@ \ No newline at end of file + diff --git a/test/test-project/html-templates/async-fragment-data-providers.marko b/test/test-project/html-templates/async-fragment-data-providers.marko index 1c9f7535b..db2359e6d 100644 --- a/test/test-project/html-templates/async-fragment-data-providers.marko +++ b/test/test-project/html-templates/async-fragment-data-providers.marko @@ -1,7 +1,7 @@ - + $d1.name - + $d2.name - \ No newline at end of file + diff --git a/test/test-project/html-templates/async-fragment-function-data-provider.marko b/test/test-project/html-templates/async-fragment-function-data-provider.marko index 6e161c5c4..0451132ba 100644 --- a/test/test-project/html-templates/async-fragment-function-data-provider.marko +++ b/test/test-project/html-templates/async-fragment-function-data-provider.marko @@ -1,3 +1,3 @@ - + Hello $userInfo.name - \ No newline at end of file + diff --git a/test/test-project/html-templates/async-fragment-macros.marko b/test/test-project/html-templates/async-fragment-macros.marko index 695a40ee3..2544b8213 100644 --- a/test/test-project/html-templates/async-fragment-macros.marko +++ b/test/test-project/html-templates/async-fragment-macros.marko @@ -1,7 +1,7 @@ $num -1 - +1 + -3 \ No newline at end of file +3 diff --git a/test/test-project/html-templates/async-fragment-ordering.marko b/test/test-project/html-templates/async-fragment-ordering.marko index f5426311d..c475573fa 100644 --- a/test/test-project/html-templates/async-fragment-ordering.marko +++ b/test/test-project/html-templates/async-fragment-ordering.marko @@ -1,17 +1,17 @@ 1 - + 2 - + 3 4 - + 5 6 7 - + 8 9 \ No newline at end of file diff --git a/test/test-project/html-templates/async-fragment-ordering2.marko b/test/test-project/html-templates/async-fragment-ordering2.marko index 8bfb19cca..8217d528a 100644 --- a/test/test-project/html-templates/async-fragment-ordering2.marko +++ b/test/test-project/html-templates/async-fragment-ordering2.marko @@ -1,13 +1,13 @@ -1 - +1 + 2 - + 3 4 - + 5 - + 6 7 @@ -15,19 +15,19 @@ 8 9 - + 10 - + 11 12 - + 13 14 - + 15 16 -17 \ No newline at end of file +17 diff --git a/test/test-project/html-templates/async-fragment-promise.marko b/test/test-project/html-templates/async-fragment-promise.marko index 25ff95259..c49d000bf 100644 --- a/test/test-project/html-templates/async-fragment-promise.marko +++ b/test/test-project/html-templates/async-fragment-promise.marko @@ -1,3 +1,3 @@ - + $promiseData - \ No newline at end of file + diff --git a/test/test-project/html-templates/async-fragment-timeout-message.marko b/test/test-project/html-templates/async-fragment-timeout-message.marko index 2ddfdea49..d1feb6874 100644 --- a/test/test-project/html-templates/async-fragment-timeout-message.marko +++ b/test/test-project/html-templates/async-fragment-timeout-message.marko @@ -1,3 +1,3 @@ - + Hello World diff --git a/test/test-project/xml-templates/async-fragment-args.marko.xml b/test/test-project/xml-templates/async-fragment-args.marko.xml index ce754dd3f..f4f98063d 100644 --- a/test/test-project/xml-templates/async-fragment-args.marko.xml +++ b/test/test-project/xml-templates/async-fragment-args.marko.xml @@ -2,7 +2,7 @@
  • - +
    • Name: $userInfo.name @@ -18,4 +18,4 @@
    - \ No newline at end of file + diff --git a/test/test-project/xml-templates/async-fragment-function-data-provider.marko.xml b/test/test-project/xml-templates/async-fragment-function-data-provider.marko.xml index 2d1fea8c6..2a815dbfe 100644 --- a/test/test-project/xml-templates/async-fragment-function-data-provider.marko.xml +++ b/test/test-project/xml-templates/async-fragment-function-data-provider.marko.xml @@ -1,7 +1,7 @@ - + Hello $userInfo.name - - \ No newline at end of file + +