summaryrefslogtreecommitdiffstats
path: root/core/src/tests
diff options
context:
space:
mode:
authorChristoph Wurst <christoph@winzerhof-wurst.at>2020-02-07 16:56:35 +0100
committerChristoph Wurst <christoph@winzerhof-wurst.at>2020-02-07 16:56:35 +0100
commitb267409d38d6c945b76b8c1a8575c188914fca12 (patch)
tree252b6d4bbd24e92de9c88e4dadfaee42b8267d9e /core/src/tests
parentfc18116715e62f777074111a8d7a3a52601c2cef (diff)
downloadnextcloud-server-b267409d38d6c945b76b8c1a8575c188914fca12.tar.gz
nextcloud-server-b267409d38d6c945b76b8c1a8575c188914fca12.zip
Add webpack-based js tests
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Diffstat (limited to 'core/src/tests')
-rw-r--r--core/src/tests/OC/requesttoken.spec.js48
-rw-r--r--core/src/tests/setup.js36
2 files changed, 84 insertions, 0 deletions
diff --git a/core/src/tests/OC/requesttoken.spec.js b/core/src/tests/OC/requesttoken.spec.js
new file mode 100644
index 00000000000..401d3766af4
--- /dev/null
+++ b/core/src/tests/OC/requesttoken.spec.js
@@ -0,0 +1,48 @@
+/*
+ * @copyright 2020 Christoph Wurst <christoph@winzerhof-wurst.at>
+ *
+ * @author 2020 Christoph Wurst <christoph@winzerhof-wurst.at>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+import {subscribe, unsubscribe} from '@nextcloud/event-bus'
+
+import {setToken} from '../../OC/requesttoken'
+
+describe('request token', () => {
+
+ describe('@nextcloud/auth integration', () => {
+ let listener
+
+ beforeEach(() => {
+ listener = sinon.spy()
+
+ subscribe('csrf-token-update', listener)
+ })
+
+ afterEach(() => {
+ unsubscribe('csrf-token-update', listener)
+ })
+
+ it('fires off an event for @nextcloud/auth', () => {
+ setToken('123')
+
+ expect(listener).to.have.been.calledWith({token: '123'})
+ })
+ })
+
+})
diff --git a/core/src/tests/setup.js b/core/src/tests/setup.js
new file mode 100644
index 00000000000..bec4e11eaea
--- /dev/null
+++ b/core/src/tests/setup.js
@@ -0,0 +1,36 @@
+/*
+ * @copyright 2018 Christoph Wurst <christoph@winzerhof-wurst.at>
+ *
+ * @author 2018 Christoph Wurst <christoph@winzerhof-wurst.at>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+require('jsdom-global')()
+const chai = require('chai')
+var sinon = require('sinon')
+var sinonChai = require('sinon-chai');
+
+chai.use(sinonChai)
+global.expect = chai.expect
+global.sinon = sinon
+
+// https://github.com/vuejs/vue-test-utils/issues/936
+// better fix for "TypeError: Super expression must either be null or
+// a function" than pinning an old version of prettier.
+//
+// https://github.com/vuejs/vue-cli/issues/2128#issuecomment-453109575
+window.Date = Date