tastejs / todomvc

Helping you select an MV* framework - Todo apps for React.js, Ember.js, Angular, and many more
http://todomvc.com
Other
28.63k stars 13.77k forks source link

React with Webpack and ES6 #1741

Open acamposruiz opened 7 years ago

acamposruiz commented 7 years ago

Hello all! :), my name is Antonio, I am new here, i have ben working these days in a webpack react with simplest build step to contribute in this project, is uploaded in my fork here https://github.com/acamposruiz/todomvc/tree/react-webpack-es6/examples/react-webpack-es6 I would like to know the way to get your approval to send a Pull Request for this :)

Thanks very much!

Antonio

vdineva commented 7 years ago

Hi Antonio, please check out the following links regarding contributing to the project https://github.com/tastejs/todomvc/wiki and https://github.com/tastejs/todomvc-app-template

acamposruiz commented 7 years ago

Thanks for your response @vdineva , I just made some changes to fix with the guide lines and delivery this Pull Request https://github.com/tastejs/todomvc/pull/1752

I hope this is good but I will be grateful with any suggestions

Thanks!

Antonio

acamposruiz commented 7 years ago

@vdineva , if you go to my PR you will see a problem when jshint run on webpack output files, I can not edit this files to fix jshint config, there is any way to exclude this file from jshint?

vdineva commented 7 years ago

@acamposruiz I believe you can add to the excludeFiles list in the .jscs file (https://github.com/acamposruiz/todomvc/blob/master/.jscsrc) the examples/react-webpack-es6/build/app.js and it should be omitted from the linting. Of course test this locally before pushing the code.

acamposruiz commented 7 years ago

Thanks @vdineva !, I've just done it and it's fine, but now my PR fail in webdriver task, I've executed it in my computer and go fine but do not in travis, I have found a closed issue about this with a generic response (https://github.com/tastejs/todomvc/issues/1683) that do not help me, perhaps you could do it :)

This is the output from Travis https://travis-ci.org/tastejs/todomvc/jobs/196705307

> @ lint /home/travis/build/tastejs/todomvc/tooling
> cd .. && jscs "examples/react-webpack-es6" "examples/react" "tests/"

(node:2667) DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:654
    throw error;
    ^

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":".todo-list li"}
  (Session info: chrome=58.0.2998.0)
  (Driver info: chromedriver=2.27.440175 (9bc1d90b8bfa4dd181fbbf769a5eb5e575574320),platform=Linux 4.8.12-040812-generic x86_64)
    at Object.checkLegacyResponse (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/error.js:639:15)
    at parseHttpResponse (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/http/index.js:528:13)
    at client_.send.then.response (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/http/index.js:466:11)
    at ManagedPromise.invokeCallback_ (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:1343:14)
    at TaskQueue.execute_ (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:2868:14)
    at TaskQueue.executeNext_ (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:2851:21)
    at asyncRun (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:2775:25)
    at /home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:639:7
    at process._tickCallback (internal/process/next_tick.js:103:7)
From: Task: WebDriver.findElement(By(css selector, ManagedPromise::646 {[[PromiseStatus]]: "pending"}))
    at Driver.schedule (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/webdriver.js:386:17)
    at Driver.findElement (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/webdriver.js:866:17)
    at /home/travis/build/tastejs/todomvc/tests/memory.js:59:20
    at ManagedPromise.invokeCallback_ (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:1343:14)
    at TaskQueue.execute_ (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:2868:14)
    at TaskQueue.executeNext_ (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:2851:21)
    at asyncRun (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:2730:27)
    at /home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:639:7
    at process._tickCallback (internal/process/next_tick.js:103:7)
From: Task: WebElement.isDisplayed()
    at Driver.schedule (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/webdriver.js:386:17)
    at WebElementPromise.schedule_ (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/webdriver.js:1746:25)
    at WebElementPromise.isDisplayed (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/webdriver.js:2111:17)
    at /home/travis/build/tastejs/todomvc/tests/memory.js:59:76
    at ManagedPromise.invokeCallback_ (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:1343:14)
    at TaskQueue.execute_ (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:2868:14)
    at TaskQueue.executeNext_ (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:2851:21)
    at asyncRun (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:2730:27)
    at /home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:639:7
    at process._tickCallback (internal/process/next_tick.js:103:7)
From: Task: <anonymous>
    at pollCondition (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:2314:16)
    at /home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:2310:9
    at new ManagedPromise (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:1048:7)
    at /home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:2309:14
    at TaskQueue.execute_ (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:2868:14)
    at TaskQueue.executeNext_ (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:2851:21)
    at asyncRun (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:2775:25)
    at /home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:639:7
    at process._tickCallback (internal/process/next_tick.js:103:7)
From: Task: <anonymous wait>
    at ControlFlow.wait (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:2307:17)
    at Driver.wait (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/webdriver.js:714:29)
    at /home/travis/build/tastejs/todomvc/tests/memory.js:51:11
    at TaskQueue.execute_ (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:2868:14)
    at TaskQueue.executeNext_ (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:2851:21)
    at asyncRun (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:2730:27)
    at /home/travis/build/tastejs/todomvc/tests/node_modules/drool/node_modules/selenium-webdriver/lib/promise.js:639:7
    at process._tickCallback (internal/process/next_tick.js:103:7)
From: Task: <anonymous>
    at executeInFlow (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/lib/index.js:9:24)
    at Object.flow (/home/travis/build/tastejs/todomvc/tests/node_modules/drool/lib/index.js:94:3)
    at /home/travis/build/tastejs/todomvc/tests/memory.js:45:8
    at Array.forEach (native)
    at Object.<anonymous> (/home/travis/build/tastejs/todomvc/tests/memory.js:44:6)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)

The command "./test-runner.sh" exited with 123.

But in my computer go well:


  TodoMVC - react-webpack-es6
    When page is initially opened
      ✓ should focus on the todo input field
    No Todos
      ✓ should hide #main and #footer (308ms)
    New Todo
      ✓ should allow me to add todo items (422ms)
      ✓ should clear text input field when an item is added (255ms)
      ✓ should append new items to the bottom of the list (626ms)
      ✓ should trim text input (246ms)
      ✓ should show #main and #footer when items added (281ms)
    Mark all as completed
      ✓ should allow me to mark all items as completed (91ms)
      ✓ should correctly update the complete all checked state (233ms)
      ✓ should allow me to clear the completion state of all items (120ms)
      ✓ complete all checkbox should update state when items are completed / cleared (235ms)
    Item
      ✓ should allow me to mark items as complete (570ms)
      ✓ should allow me to un-mark items as complete (477ms)
    Editing
      ✓ should focus the input
[ Entry {
    level: Level { name_: 'SEVERE', value_: 1000 },
    message: 'http://localhost:8000/examples/react-webpack-es6/build/app.js 2283:17 "Warning: React.findDOMNode is deprecated. Please use ReactDOM.findDOMNode from require(\'react-dom\') instead."',
    timestamp: 1485808787802,
    type: '' } ]
      ✓ should hide other controls when editing (55ms)
[ Entry {
    level: Level { name_: 'SEVERE', value_: 1000 },
    message: 'http://localhost:8000/examples/react-webpack-es6/build/app.js 2283:17 "Warning: React.findDOMNode is deprecated. Please use ReactDOM.findDOMNode from require(\'react-dom\') instead."',
    timestamp: 1485808789449,
    type: '' } ]
      ✓ should save edits on enter (236ms)
[ Entry {
    level: Level { name_: 'SEVERE', value_: 1000 },
    message: 'http://localhost:8000/examples/react-webpack-es6/build/app.js 2283:17 "Warning: React.findDOMNode is deprecated. Please use ReactDOM.findDOMNode from require(\'react-dom\') instead."',
    timestamp: 1485808791109,
    type: '' } ]
      ✓ should save edits on blur (282ms)
[ Entry {
    level: Level { name_: 'SEVERE', value_: 1000 },
    message: 'http://localhost:8000/examples/react-webpack-es6/build/app.js 2283:17 "Warning: React.findDOMNode is deprecated. Please use ReactDOM.findDOMNode from require(\'react-dom\') instead."',
    timestamp: 1485808792993,
    type: '' } ]
      ✓ should trim entered text (233ms)
[ Entry {
    level: Level { name_: 'SEVERE', value_: 1000 },
    message: 'http://localhost:8000/examples/react-webpack-es6/build/app.js 2283:17 "Warning: React.findDOMNode is deprecated. Please use ReactDOM.findDOMNode from require(\'react-dom\') instead."',
    timestamp: 1485808794995,
    type: '' } ]
      ✓ should remove the item if an empty text string was entered (186ms)
[ Entry {
    level: Level { name_: 'SEVERE', value_: 1000 },
    message: 'http://localhost:8000/examples/react-webpack-es6/build/app.js 2283:17 "Warning: React.findDOMNode is deprecated. Please use ReactDOM.findDOMNode from require(\'react-dom\') instead."',
    timestamp: 1485808796934,
    type: '' } ]
      ✓ should cancel edits on escape (204ms)
[ Entry {
    level: Level { name_: 'SEVERE', value_: 1000 },
    message: 'http://localhost:8000/examples/react-webpack-es6/build/app.js 2283:17 "Warning: React.findDOMNode is deprecated. Please use ReactDOM.findDOMNode from require(\'react-dom\') instead."',
    timestamp: 1485808798864,
    type: '' } ]
    Counter
      ✓ should display the current number of todo items (402ms)
    Clear completed button
      ✓ should display the correct text (114ms)
      ✓ should remove completed items when clicked (253ms)
      ✓ should be hidden when there are no items that are completed (277ms)
    Persistence
      ✓ should persist its data (748ms)
    Routing
      ✓ should allow me to display active items (212ms)
      ✓ should respect the back button (438ms)
      ✓ should allow me to display completed items (292ms)
      ✓ should allow me to display all items (429ms)
      ✓ should highlight the currently applied filter (216ms)

  150 passing (5m)

Do you know what's happening? Thank you very much for your help! :)