Go to file
Jérémie Astori 9c4ea85041 Instrument client code before running tests
Despite being a bit gross to look at, this brings a few advantages:

- Tests are now closer to what actually runs, so more likely to find broken stuff.
- We can start using things that were so far Webpack-only or browser-only, like ES6 imports, loading Handlebars templates, etc.
- We open ourselves to browser testing (there is some work to do, but that would be a necessary step).
- We improve the client/server separation, by making it possible to run them independently

I do some extra steps around coverage: now we have 2 reports (client + server), so I have an extra step to combine them (the `nyc report` part). This is  strictly to keep feature parity (the coverage report of this code is effectively the same as before), but in the near future, we might want to keep both reports separate, for example to continue separating client/server. Another reason would be to use something like Codecov, which I believe has the ability to have multiple reports. This is down the road though, our coverage is not good enough to make hosting them somewhere be useful (I think).

A few extras with this commit:

- Coverage summary is displayed when tests are run (this is not slowing down tests)
- Tests check for leaks (see https://mochajs.org/#--check-leaks)
- Tests now output with the `dot` reporter. This is nice as `npm test` runs in parallel, the whole output holds in a few lines instead of spanning over multiple screens.
2018-02-20 15:32:30 +02:00
client Merge pull request #1920 from thelounge/xpaw/more-eslint 2018-02-20 09:41:40 +02:00
defaults Replace reference to website with new URL 2018-02-19 12:23:41 -05:00
scripts Auto-fix code for padding-line-between-statements rule 2018-02-20 09:28:04 +02:00
src Change (un)install commands to use locally installed yarn 2018-02-20 11:28:14 +02:00
test Instrument client code before running tests 2018-02-20 15:32:30 +02:00
.editorconfig Use stylelint-config-standard 2017-06-22 11:23:50 +03:00
.eslintignore Create public folder with webpack 2017-10-18 21:20:12 +03:00
.eslintrc.yml Enforce padding-line-between-statements in eslint 2018-02-20 09:27:32 +02:00
.gitattributes Add gitattributes to normalize line endings 2016-01-24 16:12:08 +02:00
.gitignore Add yarn.lock, update CI services to run yarn 2018-02-20 11:28:14 +02:00
.npmignore Do not statically serve the index template prior to rendering it 2018-01-14 13:02:27 -05:00
.npmrc Set sign-git-tag to true in .npmrc 2018-01-11 17:12:04 +02:00
.stylelintrc.yml Update stylelint rules 2017-11-26 14:28:33 +02:00
.thelounge_home Switch default home location to ~/.thelounge and remove support of .lounge_home 2018-02-19 20:43:53 +02:00
.travis.yml Add yarn.lock, update CI services to run yarn 2018-02-20 11:28:14 +02:00
appveyor.yml Instrument client code before running tests 2018-02-20 15:32:30 +02:00
CHANGELOG.md Replace reference to website with new URL 2018-02-19 12:23:41 -05:00
CONTRIBUTING.md Replace reference to website with new URL 2018-02-19 12:23:41 -05:00
index.js Auto-fix code for padding-line-between-statements rule 2018-02-20 09:28:04 +02:00
LICENSE Update LICENSE notice to add ours on top of @erming and Shout 2016-02-10 06:20:05 +00:00
package.json Instrument client code before running tests 2018-02-20 15:32:30 +02:00
README.md Update readme to suggest using yarn 2018-02-20 11:28:14 +02:00
SECURITY.md Add SECURITY guidelines about security vulnerability disclosures, and link them from the CONTRIBUTING guidelines 2018-01-15 20:26:26 -05:00
SUPPORT.md Add a SUPPORT file 2017-08-01 01:41:49 -04:00
webpack.config-test.js Instrument client code before running tests 2018-02-20 15:32:30 +02:00
webpack.config.js Use some ES6/Node v4-only syntax when possible 2018-02-19 18:30:00 +02:00
yarn.lock Instrument client code before running tests 2018-02-20 15:32:30 +02:00

The Lounge

Modern web IRC client designed for self-hosting

WebsiteDocsDemo

#thelounge IRC channel on freenode
npm version Travis CI Build Status AppVeyor Build Status Dependencies Status Total downloads on npm

Overview

  • Modern features brought to IRC. Push notifications, link previews, new message markers, and more bring IRC to the 21st century.
  • Always connected. Remains connected to IRC servers while you are offline.
  • Cross platform. It doesn't matter what OS you use, it just works wherever Node.js runs.
  • Responsive interface. The client works smoothly on every desktop, smartphone and tablet.
  • Synchronized experience. Always resume where you left off no matter what device.

To learn more about configuration, usage and features of The Lounge, take a look at the website.

The Lounge is the official and community-managed fork of Shout, by Mattias Erming.

Installation and usage

The Lounge requires Node.js v4 or more recent. Yarn package manager is also recommended (npm will also work).

Run this in a terminal to install (or upgrade) the latest stable release from npm registry:

[sudo] yarn global add thelounge

If you already have The Lounge installed globally, use the following command to update it:

[sudo] yarn global upgrade thelounge

When installation is complete, run:

thelounge start

For more information, read the documentation, wiki, or run:

thelounge --help

Running from source

The following commands install and run the development version of The Lounge:

git clone https://github.com/thelounge/lounge.git
cd lounge
yarn install
NODE_ENV=production yarn build
yarn start

When installed like this, thelounge executable is not created. Use node index <command> to run commands.

⚠️ While it is the most recent codebase, this is not production-ready! Run at your own risk. It is also not recommended to run this as root.

Development setup

Simply follow the instructions to run The Lounge from source above, on your own fork.

Before submitting any change, make sure to:

  • Read the Contributing instructions
  • Run npm test to execute linters and test suite
  • Run npm run build if you change or add anything in client/js or client/views