mirror of
https://github.com/gravitational/teleport
synced 2024-10-22 10:13:21 +00:00
(web) fixing unit-tests, preparing for release
This commit is contained in:
parent
fd40ed5f86
commit
1a21339b07
|
@ -1,5 +1,5 @@
|
|||
var WebpackDevServer = require("webpack-dev-server");
|
||||
var webpackConfig = require('./webpack.config.js');
|
||||
var webpackConfig = require('./webpack.config.dev.js');
|
||||
var express = require('express');
|
||||
var webpack = require('webpack');
|
||||
var proxy = require('http-proxy').createProxyServer();
|
||||
|
@ -52,6 +52,6 @@ server.app.get(ROOT +'/*', function (req, res) {
|
|||
|
||||
module.exports = function(){
|
||||
server.listen(PORT, "localhost", function() {
|
||||
console.log('Dev Server is up and running: http://location:' + PORT);
|
||||
console.log('Dev Server is up and running: https://location:' + PORT +'/web');
|
||||
});
|
||||
}
|
||||
|
|
5558
web/dist/app/app.js
vendored
5558
web/dist/app/app.js
vendored
File diff suppressed because one or more lines are too long
345
web/dist/app/styles.js
vendored
345
web/dist/app/styles.js
vendored
File diff suppressed because one or more lines are too long
46810
web/dist/app/vendor.js
vendored
46810
web/dist/app/vendor.js
vendored
File diff suppressed because one or more lines are too long
6
web/dist/index.html
vendored
6
web/dist/index.html
vendored
|
@ -14,12 +14,12 @@
|
|||
<script src="/web/app/assets/js/bootstrap.js"></script>
|
||||
<script src="/web/app/assets/js/term.js"></script>
|
||||
<script src="/web/app/assets/js/bootstrap-datepicker-1.6.0.js"></script>
|
||||
<script src="/web/app/vendor.js?ver=0.11458068642392"></script>
|
||||
<script src="/web/app/styles.js?ver=0.11458068642392"></script>
|
||||
<script src="/web/app/vendor.js?ver=0.11458109567737"></script>
|
||||
<script src="/web/app/styles.js?ver=0.11458109567737"></script>
|
||||
|
||||
</head>
|
||||
<body class="grv">
|
||||
<div id="app"></div>
|
||||
</body>
|
||||
<script src="/web/app/app.js?ver=0.11458068642392"></script>
|
||||
<script src="/web/app/app.js?ver=0.11458109567737"></script>
|
||||
</html>
|
||||
|
|
|
@ -3,26 +3,30 @@ var webpack = require('webpack');
|
|||
var webpackConfig = require('./webpack.config.js');
|
||||
var gutil = require('gulp-util');
|
||||
var shell = require('gulp-shell');
|
||||
var exec = require('child_process').execSync;
|
||||
var fs = require('fs');
|
||||
|
||||
var VERSION = '0.1';
|
||||
var BUILD_OUTPUT = 'dist';
|
||||
var BUILD_OUTPUT_ASSETS = BUILD_OUTPUT+'/app/assets';
|
||||
|
||||
gulp.task('default', ['copy:assets', 'copy:html', 'webpack:build']);
|
||||
gulp.task('default', ['clean', 'copy:assets', 'copy:html', 'webpack:build']);
|
||||
|
||||
gulp.task('clean', function(){
|
||||
exec('rm -rf "' + BUILD_OUTPUT + '"');
|
||||
exec('mkdir "' + BUILD_OUTPUT + '"');
|
||||
});
|
||||
|
||||
gulp.task('copy:html', function(){
|
||||
var indexHtml = fs.readFileSync('src/index.html', 'utf8');
|
||||
indexHtml = indexHtml.replace(new RegExp("\\[VERSION]", "g"), VERSION+new Date().getTime() );
|
||||
fs.writeFileSync('dist/index.html', indexHtml);
|
||||
fs.writeFileSync(BUILD_OUTPUT+'/index.html', indexHtml);
|
||||
});
|
||||
|
||||
gulp.task('copy:assets', function(){
|
||||
// copy mocks
|
||||
gulp.src(['src/mocks/**'])
|
||||
.pipe(gulp.dest('dist/mocks'));
|
||||
|
||||
// copy assets
|
||||
gulp.src(['src/assets/**', 'src/mocks/**'])
|
||||
.pipe(gulp.dest('dist/app/assets'));
|
||||
gulp.src(['src/assets/**'])
|
||||
.pipe(gulp.dest(BUILD_OUTPUT_ASSETS));
|
||||
});
|
||||
|
||||
gulp.task('dev', ['default'], function(){
|
||||
|
|
|
@ -1,29 +1,24 @@
|
|||
var path = require('path');
|
||||
var webpack = require('webpack');
|
||||
|
||||
module.exports = function (config) {
|
||||
// Browsers to run on BrowserStack
|
||||
var customLaunchers = {
|
||||
BS_Chrome: {
|
||||
base: 'BrowserStack',
|
||||
os: 'Windows',
|
||||
os_version: '8.1',
|
||||
browser: 'chrome',
|
||||
browser_version: '39.0',
|
||||
}
|
||||
};
|
||||
// we want to pass this information to the client to disable/enable debug information as needed.
|
||||
var clientArgs = [];
|
||||
if(process.env.TELEPORT_NO_DEBUG === 1){
|
||||
clientArgs['TELEPORT_NO_DEBUG'];
|
||||
}
|
||||
|
||||
module.exports = function (config) {
|
||||
config.set({
|
||||
customLaunchers: customLaunchers,
|
||||
browsers: [ 'Chrome'],
|
||||
browsers: [],
|
||||
frameworks: [ 'mocha' ],
|
||||
reporters: [ 'mocha' ],
|
||||
reporters: [ 'spec' ],
|
||||
client: {
|
||||
args : [process.env.TELEPORT_NO_DEBUG]
|
||||
},
|
||||
files: [
|
||||
'node_modules/phantomjs-polyfill/bind-polyfill.js',
|
||||
'src/assets/js/jquery-2.1.1.js',
|
||||
'src/assets/js/bootstrap.min.js',
|
||||
'src/assets/js/plugins/metisMenu/jquery.metisMenu.js',
|
||||
'src/assets/js/plugins/slimscroll/jquery.slimscroll.min.js',
|
||||
'src/assets/js/term.js',
|
||||
'src/assets/js/jquery-validate-1.14.0.js',
|
||||
'tests.webpack.js'
|
||||
|
@ -35,14 +30,13 @@ module.exports = function (config) {
|
|||
|
||||
webpack: {
|
||||
devtool: 'inline-source-map',
|
||||
externals: ['jQuery', 'Terminal', 'sinos' ],
|
||||
externals: ['jQuery', 'Terminal' ],
|
||||
resolve: {
|
||||
root: [ path.join(__dirname, 'src') ]
|
||||
},
|
||||
module: {
|
||||
loaders: [
|
||||
{ test: /\.js$/, exclude: /node_modules/, loader: 'babel' },
|
||||
{ test: /\.jsx$/, exclude: /node_modules/, loader: 'babel' },
|
||||
{ test: /\.(js|jsx)$/, exclude: /node_modules/, loader: 'babel' }
|
||||
]
|
||||
},
|
||||
plugins: [
|
||||
|
|
|
@ -9,7 +9,8 @@
|
|||
"build": "node node_modules/webpack/bin/webpack.js",
|
||||
"dev": "gulp; node node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --content-base dist",
|
||||
"lint": "node node_modules/eslint/bin/eslint src/**/*.js",
|
||||
"test": "node node_modules/karma/bin/karma start"
|
||||
"test": "TELEPORT_NO_DEBUG=1 node node_modules/karma/bin/karma start --browsers PhantomJS --single-run",
|
||||
"tdd": "node node_modules/karma/bin/karma start --browsers Chrome"
|
||||
},
|
||||
"author": "",
|
||||
"license": "",
|
||||
|
@ -32,7 +33,7 @@
|
|||
"body-parser": "^1.9.0",
|
||||
"bootstrap-sass": "^3.3.6",
|
||||
"css-loader": "^0.18.0",
|
||||
"eslint": "^2.2.0",
|
||||
"eslint": "2.2.0",
|
||||
"eslint-loader": "^1.3.0",
|
||||
"eslint-plugin-react": "3.3.2",
|
||||
"events": "1.0.2",
|
||||
|
@ -42,19 +43,22 @@
|
|||
"gulp-shell": "^0.4.3",
|
||||
"gulp-util": "^3.0.6",
|
||||
"karma": "^0.13.8",
|
||||
"karma-browserstack-launcher": "^0.1.4",
|
||||
"karma-chrome-launcher": "^0.2.0",
|
||||
"karma-mocha": "^0.2.0",
|
||||
"karma-mocha-reporter": "^1.1.1",
|
||||
"karma-phantomjs-launcher": "^1.0.0",
|
||||
"karma-sourcemap-loader": "^0.3.5",
|
||||
"karma-spec-reporter": "0.0.24",
|
||||
"karma-webpack": "^1.7.0",
|
||||
"keymirror": "^0.1.1",
|
||||
"mocha": "^2.0.1",
|
||||
"node-inspector": "^0.12.3",
|
||||
"node-sass": "^3.3.2",
|
||||
"phantomjs-polyfill": "0.0.2",
|
||||
"phantomjs-prebuilt": "^2.1.4",
|
||||
"raw-loader": "^0.5.1",
|
||||
"react-hot-loader": "^1.3.0",
|
||||
"react-addons-test-utils": "^0.14.3",
|
||||
"react-hot-loader": "^1.3.0",
|
||||
"sass-loader": "^2.0.1",
|
||||
"serve-static": "^1.3.2",
|
||||
"source-map-loader": "^0.1.5",
|
||||
|
|
|
@ -16,6 +16,7 @@ describe('auth', function () {
|
|||
spyOn(auth, '_startTokenRefresher');
|
||||
spyOn(auth, '_stopTokenRefresher');
|
||||
spyOn(auth, '_getRefreshTokenTimerId');
|
||||
spyOn(auth, '_redirect');
|
||||
});
|
||||
|
||||
afterEach(function () {
|
||||
|
@ -66,7 +67,7 @@ describe('auth', function () {
|
|||
expect(wasCalled).toEqual(true);
|
||||
});
|
||||
|
||||
it('should be rejected if token is invalid', function () {
|
||||
it('should be rejected if token is invalid', function () {
|
||||
var wasCalled = false;
|
||||
api.post.andReturn($.Deferred().reject());
|
||||
auth._getRefreshTokenTimerId.andReturn(null);
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
/*
|
||||
|
||||
{
|
||||
"events": [],
|
||||
"nodes": [{
|
||||
"id": "0.0.0.0:3022",
|
||||
"addr": "0.0.0.0:3022",
|
||||
"hostname": "x220",
|
||||
"labels": null,
|
||||
"cmd_labels": null
|
||||
}],
|
||||
"session": {
|
||||
"id": "e46449ef-36b0-418e-83b9-9be50386ce2e",
|
||||
"parties": [{
|
||||
"id": "21303619-1785-4486-80ee-e4d6213568c1",
|
||||
"site": "127.0.0.1:33505",
|
||||
"user": "akontsevoy",
|
||||
"server_addr": "0.0.0.0:3022",
|
||||
"last_active": "2016-02-26T21:26:36.503756758-05:00"
|
||||
}]
|
||||
}
|
||||
}
|
||||
*/
|
|
@ -1,51 +0,0 @@
|
|||
/*var React = require('react');
|
||||
var ReactDOM = require('react-dom');
|
||||
var ReactTestUtils = require('react-addons-test-utils');
|
||||
var expect = require('expect');
|
||||
|
||||
describe('components/sessionPlayer', function () {
|
||||
afterEach(function () {
|
||||
ReactDOM.unmountComponentAtNode($node[0])
|
||||
})
|
||||
|
||||
describe('initial state', function () {
|
||||
it('XXX', function () {
|
||||
render({sid: 4});
|
||||
});
|
||||
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
|
||||
var SessionPlayer = React.createClass({
|
||||
|
||||
getInitialState() {
|
||||
return {
|
||||
isLoaind: false,
|
||||
isPlaying: false,
|
||||
msg: 'Connecting...'
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
componentDidMount() {
|
||||
},
|
||||
|
||||
onOpen(){
|
||||
actions.connected();
|
||||
},
|
||||
|
||||
render: function() {
|
||||
return (
|
||||
<div className="grv-session-player">
|
||||
</div>
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function render(props){
|
||||
ReactDOM.render(<ExpanderComponent ...props />, $node[0]);
|
||||
}
|
||||
*/
|
|
@ -38,9 +38,13 @@ var auth = {
|
|||
return $.Deferred().reject();
|
||||
},
|
||||
|
||||
logout(){
|
||||
logout(){
|
||||
auth._stopTokenRefresher();
|
||||
session.clear();
|
||||
auth._redirect();
|
||||
},
|
||||
|
||||
_redirect(){
|
||||
window.location = cfg.routes.login;
|
||||
},
|
||||
|
||||
|
|
|
@ -1,7 +1,15 @@
|
|||
import { Reactor } from 'nuclear-js'
|
||||
|
||||
let enabled = true;
|
||||
|
||||
// temporary workaround to disable debug info during unit-tests
|
||||
let karma = window.__karma__;
|
||||
if(karma && karma.config.args.length === 1){
|
||||
enabled = false;
|
||||
}
|
||||
|
||||
const reactor = new Reactor({
|
||||
debug: true
|
||||
debug: enabled
|
||||
})
|
||||
|
||||
window.reactor = reactor;
|
||||
|
|
10
web/webpack.config.dev.js
Normal file
10
web/webpack.config.dev.js
Normal file
|
@ -0,0 +1,10 @@
|
|||
var webpack = require('webpack');
|
||||
var webpackConfig = require('./webpack.config.js');
|
||||
|
||||
webpackConfig.cache = true;
|
||||
webpackConfig.devtool = 'inline-source-map';
|
||||
webpackConfig.plugins = [
|
||||
new webpack.optimize.OccurenceOrderPlugin(),
|
||||
new webpack.optimize.CommonsChunkPlugin({ names: ['vendor'] })]
|
||||
|
||||
module.exports = webpackConfig;
|
|
@ -3,8 +3,6 @@ var webpack = require('webpack');
|
|||
var pkgs = require('./package.json');
|
||||
|
||||
module.exports = {
|
||||
cache: true,
|
||||
devtool: 'inline-source-map',
|
||||
entry: {
|
||||
app: ['./src/app/index.jsx'],
|
||||
vendor: Object.keys(pkgs.dependencies),
|
||||
|
@ -19,7 +17,7 @@ module.exports = {
|
|||
sourceMapFilename: '[name].map'
|
||||
},
|
||||
|
||||
externals: ['jQuery', 'Terminal', 'toastr', '_' ],
|
||||
externals: ['jQuery', 'Terminal', '_' ],
|
||||
|
||||
resolve: {
|
||||
root: [ path.join(__dirname, 'src') ],
|
||||
|
@ -29,16 +27,10 @@ module.exports = {
|
|||
module: {
|
||||
|
||||
loaders: [
|
||||
{ test: /\.(woff|woff2|ttf|eot|svg)$/, loader: "url-loader?limit=10000&name=fonts/[name].[ext]" },
|
||||
{ test: /\.(woff|woff2|ttf|eot|svg)$/, loader: "url-loader?limit=10000&name=fonts/[name].[ext]" },
|
||||
{
|
||||
include: path.join(__dirname, 'src'),
|
||||
test: /\.js$/,
|
||||
exclude: /node_modules/,
|
||||
loader: 'eslint!babel?loose=all&cacheDirectory'
|
||||
},
|
||||
{
|
||||
include: path.join(__dirname, 'src'),
|
||||
test: /\.jsx$/,
|
||||
test: /\.(js|jsx)$/,
|
||||
exclude: /node_modules/,
|
||||
loader: 'eslint!react-hot!babel?loose=all&cacheDirectory'
|
||||
},
|
||||
|
@ -49,14 +41,15 @@ module.exports = {
|
|||
]
|
||||
},
|
||||
|
||||
node: {
|
||||
Buffer: true
|
||||
},
|
||||
|
||||
plugins: [
|
||||
new webpack.DefinePlugin({'process.env.NODE_ENV': '"production"'}),
|
||||
new webpack.optimize.OccurenceOrderPlugin(),
|
||||
new webpack.optimize.CommonsChunkPlugin({
|
||||
names: ['vendor']
|
||||
})
|
||||
}),
|
||||
|
||||
new webpack.optimize.UglifyJsPlugin({
|
||||
compress: { warnings: false }
|
||||
})
|
||||
]
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue