Setup CI tests (#100)

* use @xarc/xrun to streamline tasks in an imperative manner

* add lint-staged/husky for git hook tasks

* run prettier across all files

* fixing tests

* add ci test workflow

* add a ci workflow

* remove precommit in favor of husky

* add .prettierrc.js

* reformat with prettier
This commit is contained in:
Vu Nguyen
2021-01-13 23:05:05 -06:00
committed by GitHub
parent 649c64cf1d
commit 9ef655ac3b
117 changed files with 9484 additions and 4342 deletions

View File

@@ -1,6 +1,6 @@
/* global browser */
var React = require("react");
var React = require('react');
var reactCreateClass = require('create-react-class');
var $ = require('jquery');
@@ -17,160 +17,147 @@ var WakaTimeCore = require('../core/WakaTimeCore').default;
var changeExtensionState = require('../helpers/changeExtensionState');
var Wakatime = reactCreateClass({
getInitialState: function () {
return {
user: {
full_name: null,
email: null,
photo: null,
},
loggedIn: false,
loggingEnabled: config.loggingEnabled,
totalTimeLoggedToday: '0 minutes',
};
},
getInitialState: function() {
return {
user: {
full_name: null,
email: null,
photo: null
},
loggedIn: false,
componentDidMount: function () {
var wakatime = new WakaTimeCore();
var that = this;
wakatime.checkAuth().done(function (data) {
if (data !== false) {
browser.storage.sync
.get({
loggingEnabled: config.loggingEnabled,
totalTimeLoggedToday: '0 minutes'
};
},
})
.then(function (items) {
that.setState({ loggingEnabled: items.loggingEnabled });
componentDidMount: function() {
var wakatime = new WakaTimeCore();
var that = this;
wakatime.checkAuth().done(function(data) {
if (data !== false) {
browser.storage.sync.get({
loggingEnabled: config.loggingEnabled
}).then(function(items) {
that.setState({loggingEnabled: items.loggingEnabled});
if (items.loggingEnabled === true) {
changeExtensionState('allGood');
}
else {
changeExtensionState('notLogging');
}
});
that.setState({
user: {
full_name: data.full_name,
email: data.email,
photo: data.photo
},
loggedIn: true
});
wakatime.getTotalTimeLoggedToday().done(function(grand_total) {
that.setState({
totalTimeLoggedToday: grand_total.text
});
});
wakatime.recordHeartbeat();
}
else {
changeExtensionState('notSignedIn');
if (items.loggingEnabled === true) {
changeExtensionState('allGood');
} else {
changeExtensionState('notLogging');
}
});
that.setState({
user: {
full_name: data.full_name,
email: data.email,
photo: data.photo,
},
loggedIn: true,
});
},
logoutUser: function() {
var deferredObject = $.Deferred();
var that = this;
$.ajax({
url: config.logoutUserUrl,
method: 'GET',
success: function() {
deferredObject.resolve(that);
},
error: function(xhr, status, err) {
console.error(config.logoutUserUrl, status, err.toString());
deferredObject.resolve(that);
}
wakatime.getTotalTimeLoggedToday().done(function (grand_total) {
that.setState({
totalTimeLoggedToday: grand_total.text,
});
});
return deferredObject.promise();
},
wakatime.recordHeartbeat();
} else {
changeExtensionState('notSignedIn');
}
});
},
_logoutUser: function() {
logoutUser: function () {
var deferredObject = $.Deferred();
var that = this;
var that = this;
this.logoutUser().done(function(){
$.ajax({
url: config.logoutUserUrl,
method: 'GET',
success: function () {
deferredObject.resolve(that);
},
error: function (xhr, status, err) {
console.error(config.logoutUserUrl, status, err.toString());
that.setState({
user: {
full_name: null,
email: null,
photo: null
},
loggedIn: false,
loggingEnabled: false
});
deferredObject.resolve(that);
},
});
changeExtensionState('notSignedIn');
return deferredObject.promise();
},
});
},
_logoutUser: function () {
var that = this;
_disableLogging: function() {
this.setState({
loggingEnabled: false
});
this.logoutUser().done(function () {
that.setState({
user: {
full_name: null,
email: null,
photo: null,
},
loggedIn: false,
loggingEnabled: false,
});
changeExtensionState('notLogging');
changeExtensionState('notSignedIn');
});
},
browser.storage.sync.set({
loggingEnabled: false
});
},
_disableLogging: function () {
this.setState({
loggingEnabled: false,
});
_enableLogging: function() {
this.setState({
loggingEnabled: true
});
changeExtensionState('notLogging');
changeExtensionState('allGood');
browser.storage.sync.set({
loggingEnabled: false,
});
},
browser.storage.sync.set({
loggingEnabled: true
});
},
_enableLogging: function () {
this.setState({
loggingEnabled: true,
});
render: function() {
return (
<div>
<NavBar
user={this.state.user}
loggedIn={this.state.loggedIn} />
<div className="container">
<div className="row">
<div className="col-md-12">
<MainList
disableLogging={this._disableLogging}
enableLogging={this._enableLogging}
loggingEnabled={this.state.loggingEnabled}
user={this.state.user}
totalTimeLoggedToday={this.state.totalTimeLoggedToday}
logoutUser={this._logoutUser}
loggedIn={this.state.loggedIn} />
</div>
</div>
</div>
changeExtensionState('allGood');
browser.storage.sync.set({
loggingEnabled: true,
});
},
render: function () {
return (
<div>
<NavBar user={this.state.user} loggedIn={this.state.loggedIn} />
<div className="container">
<div className="row">
<div className="col-md-12">
<MainList
disableLogging={this._disableLogging}
enableLogging={this._enableLogging}
loggingEnabled={this.state.loggingEnabled}
user={this.state.user}
totalTimeLoggedToday={this.state.totalTimeLoggedToday}
logoutUser={this._logoutUser}
loggedIn={this.state.loggedIn}
/>
</div>
);
}
</div>
</div>
</div>
);
},
});
module.exports = Wakatime;