Client: Guild page and mix changes (#8533)

* update deps

* add guilds page

* improve karma conf, add tests for actions
This commit is contained in:
Matteo Pagliazzi
2017-03-05 19:07:48 +01:00
committed by GitHub
parent 03b3e79ea0
commit 0a35e63897
19 changed files with 282 additions and 227 deletions

364
npm-shrinkwrap.json generated
View File

@@ -17,22 +17,15 @@
"from": "accepts@>=1.3.2 <2.0.0", "from": "accepts@>=1.3.2 <2.0.0",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz" "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz"
}, },
"acorn": {
"version": "1.2.2",
"from": "acorn@>=1.0.3 <2.0.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz"
},
"acorn-dynamic-import": {
"version": "2.0.1",
"from": "acorn-dynamic-import@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.1.tgz",
"dependencies": {
"acorn": { "acorn": {
"version": "4.0.11", "version": "4.0.11",
"from": "acorn@>=4.0.3 <5.0.0", "from": "acorn@>=4.0.3 <5.0.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz" "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz"
} },
} "acorn-dynamic-import": {
"version": "2.0.2",
"from": "acorn-dynamic-import@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz"
}, },
"acorn-globals": { "acorn-globals": {
"version": "1.0.9", "version": "1.0.9",
@@ -83,16 +76,9 @@
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.0.1.tgz" "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.0.1.tgz"
}, },
"ajv": { "ajv": {
"version": "4.11.3", "version": "4.11.4",
"from": "ajv@>=4.11.2 <5.0.0", "from": "ajv@>=4.9.1 <5.0.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.3.tgz", "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.4.tgz"
"dependencies": {
"json-stable-stringify": {
"version": "1.0.1",
"from": "json-stable-stringify@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz"
}
}
}, },
"ajv-keywords": { "ajv-keywords": {
"version": "1.5.1", "version": "1.5.1",
@@ -462,9 +448,9 @@
"dev": true "dev": true
}, },
"astw": { "astw": {
"version": "2.0.0", "version": "2.2.0",
"from": "astw@>=2.0.0 <3.0.0", "from": "astw@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/astw/-/astw-2.0.0.tgz" "resolved": "https://registry.npmjs.org/astw/-/astw-2.2.0.tgz"
}, },
"async": { "async": {
"version": "1.5.2", "version": "1.5.2",
@@ -969,9 +955,9 @@
"resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz" "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz"
}, },
"bluebird": { "bluebird": {
"version": "3.4.7", "version": "3.5.0",
"from": "bluebird@>=3.3.5 <4.0.0", "from": "bluebird@>=3.3.5 <4.0.0",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz" "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz"
}, },
"bn.js": { "bn.js": {
"version": "4.11.6", "version": "4.11.6",
@@ -979,14 +965,14 @@
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz" "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz"
}, },
"body-parser": { "body-parser": {
"version": "1.16.1", "version": "1.17.0",
"from": "body-parser@>=1.15.0 <2.0.0", "from": "body-parser@>=1.15.0 <2.0.0",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.16.1.tgz", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.17.0.tgz",
"dependencies": { "dependencies": {
"qs": { "qs": {
"version": "6.2.1", "version": "6.3.1",
"from": "qs@6.2.1", "from": "qs@6.3.1",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.2.1.tgz" "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.1.tgz"
} }
} }
}, },
@@ -1532,9 +1518,9 @@
"resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz" "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz"
}, },
"browserslist": { "browserslist": {
"version": "1.7.5", "version": "1.7.6",
"from": "browserslist@>=1.7.5 <2.0.0", "from": "browserslist@>=1.7.5 <2.0.0",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.5.tgz" "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.6.tgz"
}, },
"bson": { "bson": {
"version": "1.0.4", "version": "1.0.4",
@@ -1659,9 +1645,9 @@
} }
}, },
"caniuse-db": { "caniuse-db": {
"version": "1.0.30000628", "version": "1.0.30000632",
"from": "caniuse-db@>=1.0.30000628 <2.0.0", "from": "caniuse-db@>=1.0.30000628 <2.0.0",
"resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000628.tgz" "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000632.tgz"
}, },
"capture-stack-trace": { "capture-stack-trace": {
"version": "1.0.0", "version": "1.0.0",
@@ -2314,27 +2300,15 @@
"resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz" "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz"
}, },
"cross-env": { "cross-env": {
"version": "3.1.4", "version": "3.2.3",
"from": "cross-env@>=3.1.4 <4.0.0", "from": "cross-env@>=3.1.4 <4.0.0",
"resolved": "https://registry.npmjs.org/cross-env/-/cross-env-3.1.4.tgz", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-3.2.3.tgz",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"cross-spawn": { "is-windows": {
"version": "3.0.1", "version": "1.0.0",
"from": "cross-spawn@>=3.0.1 <4.0.0", "from": "is-windows@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.0.tgz",
"dev": true
},
"lru-cache": {
"version": "4.0.2",
"from": "lru-cache@>=4.0.1 <5.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz",
"dev": true
},
"which": {
"version": "1.2.12",
"from": "which@>=1.2.9 <2.0.0",
"resolved": "https://registry.npmjs.org/which/-/which-1.2.12.tgz",
"dev": true "dev": true
} }
} }
@@ -2482,15 +2456,10 @@
"from": "cwise@>=1.0.0 <2.0.0", "from": "cwise@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/cwise/-/cwise-1.0.9.tgz", "resolved": "https://registry.npmjs.org/cwise/-/cwise-1.0.9.tgz",
"dependencies": { "dependencies": {
"async": {
"version": "0.2.10",
"from": "async@>=0.2.6 <0.3.0",
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz"
},
"uglify-js": { "uglify-js": {
"version": "2.8.0", "version": "2.8.7",
"from": "uglify-js@>=2.6.0 <3.0.0", "from": "uglify-js@>=2.6.0 <3.0.0",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.0.tgz" "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.7.tgz"
} }
} }
}, },
@@ -2625,11 +2594,6 @@
"from": "isarray@0.0.1", "from": "isarray@0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
}, },
"json-stable-stringify": {
"version": "1.0.1",
"from": "json-stable-stringify@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz"
},
"ordered-read-streams": { "ordered-read-streams": {
"version": "0.3.0", "version": "0.3.0",
"from": "ordered-read-streams@>=0.3.0 <0.4.0", "from": "ordered-read-streams@>=0.3.0 <0.4.0",
@@ -2986,16 +2950,9 @@
"resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz" "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz"
}, },
"detective": { "detective": {
"version": "4.3.2", "version": "4.5.0",
"from": "detective@>=4.0.0 <5.0.0", "from": "detective@>=4.0.0 <5.0.0",
"resolved": "https://registry.npmjs.org/detective/-/detective-4.3.2.tgz", "resolved": "https://registry.npmjs.org/detective/-/detective-4.5.0.tgz"
"dependencies": {
"acorn": {
"version": "3.3.0",
"from": "acorn@>=3.1.0 <4.0.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz"
}
}
}, },
"di": { "di": {
"version": "0.0.1", "version": "0.0.1",
@@ -3137,11 +3094,6 @@
"from": "isarray@0.0.1", "from": "isarray@0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
}, },
"json-stable-stringify": {
"version": "1.0.1",
"from": "json-stable-stringify@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz"
},
"ordered-read-streams": { "ordered-read-streams": {
"version": "0.3.0", "version": "0.3.0",
"from": "ordered-read-streams@>=0.3.0 <0.4.0", "from": "ordered-read-streams@>=0.3.0 <0.4.0",
@@ -3234,9 +3186,9 @@
"dev": true "dev": true
}, },
"electron-to-chromium": { "electron-to-chromium": {
"version": "1.2.4", "version": "1.2.5",
"from": "electron-to-chromium@>=1.2.3 <2.0.0", "from": "electron-to-chromium@>=1.2.5 <2.0.0",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.2.4.tgz" "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.2.5.tgz"
}, },
"elliptic": { "elliptic": {
"version": "6.4.0", "version": "6.4.0",
@@ -3327,9 +3279,9 @@
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz" "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz"
}, },
"error-ex": { "error-ex": {
"version": "1.3.0", "version": "1.3.1",
"from": "error-ex@>=1.2.0 <2.0.0", "from": "error-ex@>=1.2.0 <2.0.0",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz" "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz"
}, },
"es5-ext": { "es5-ext": {
"version": "0.10.12", "version": "0.10.12",
@@ -3433,9 +3385,9 @@
} }
}, },
"eslint": { "eslint": {
"version": "3.16.1", "version": "3.17.0",
"from": "eslint@>=3.0.0 <4.0.0", "from": "eslint@>=3.0.0 <4.0.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-3.16.1.tgz", "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.17.0.tgz",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"cli-cursor": { "cli-cursor": {
@@ -3456,12 +3408,6 @@
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz",
"dev": true "dev": true
}, },
"json-stable-stringify": {
"version": "1.0.1",
"from": "json-stable-stringify@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
"dev": true
},
"mute-stream": { "mute-stream": {
"version": "0.0.5", "version": "0.0.5",
"from": "mute-stream@0.0.5", "from": "mute-stream@0.0.5",
@@ -3759,6 +3705,11 @@
"from": "express-validator@>=2.18.0 <3.0.0", "from": "express-validator@>=2.18.0 <3.0.0",
"resolved": "https://registry.npmjs.org/express-validator/-/express-validator-2.21.0.tgz", "resolved": "https://registry.npmjs.org/express-validator/-/express-validator-2.21.0.tgz",
"dependencies": { "dependencies": {
"bluebird": {
"version": "3.4.7",
"from": "bluebird@>=3.4.0 <3.5.0",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz"
},
"lodash": { "lodash": {
"version": "4.16.6", "version": "4.16.6",
"from": "lodash@>=4.16.0 <4.17.0", "from": "lodash@>=4.16.0 <4.17.0",
@@ -3787,9 +3738,9 @@
"resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz" "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz"
}, },
"extract-text-webpack-plugin": { "extract-text-webpack-plugin": {
"version": "2.0.0", "version": "2.1.0",
"from": "extract-text-webpack-plugin@>=2.0.0-rc.3 <3.0.0", "from": "extract-text-webpack-plugin@>=2.0.0-rc.3 <3.0.0",
"resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.0.0.tgz", "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.1.0.tgz",
"dependencies": { "dependencies": {
"async": { "async": {
"version": "2.1.5", "version": "2.1.5",
@@ -3845,6 +3796,11 @@
"from": "falafel@>=1.0.0 <2.0.0", "from": "falafel@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/falafel/-/falafel-1.2.0.tgz", "resolved": "https://registry.npmjs.org/falafel/-/falafel-1.2.0.tgz",
"dependencies": { "dependencies": {
"acorn": {
"version": "1.2.2",
"from": "acorn@>=1.0.3 <2.0.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz"
},
"isarray": { "isarray": {
"version": "0.0.1", "version": "0.0.1",
"from": "isarray@0.0.1", "from": "isarray@0.0.1",
@@ -5374,11 +5330,6 @@
"from": "ansi-styles@>=1.1.0 <2.0.0", "from": "ansi-styles@>=1.1.0 <2.0.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz" "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz"
}, },
"async": {
"version": "0.2.10",
"from": "async@>=0.2.6 <0.3.0",
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz"
},
"chalk": { "chalk": {
"version": "0.5.1", "version": "0.5.1",
"from": "chalk@>=0.5.1 <0.6.0", "from": "chalk@>=0.5.1 <0.6.0",
@@ -5452,9 +5403,9 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz" "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz"
}, },
"uglify-js": { "uglify-js": {
"version": "2.8.0", "version": "2.8.7",
"from": "uglify-js@>=2.4.0 <3.0.0", "from": "uglify-js@>=2.4.0 <3.0.0",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.0.tgz" "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.7.tgz"
} }
} }
}, },
@@ -5734,11 +5685,6 @@
"from": "gulp-sourcemaps@>=1.6.0 <2.0.0", "from": "gulp-sourcemaps@>=1.6.0 <2.0.0",
"resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.11.1.tgz", "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.11.1.tgz",
"dependencies": { "dependencies": {
"acorn": {
"version": "4.0.11",
"from": "acorn@>=4.0.0 <5.0.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz"
},
"vinyl": { "vinyl": {
"version": "1.2.0", "version": "1.2.0",
"from": "vinyl@>=1.0.0 <2.0.0", "from": "vinyl@>=1.0.0 <2.0.0",
@@ -5960,6 +5906,11 @@
"from": "handlebars-layouts@>=1.1.0 <1.2.0", "from": "handlebars-layouts@>=1.1.0 <1.2.0",
"resolved": "https://registry.npmjs.org/handlebars-layouts/-/handlebars-layouts-1.1.0.tgz" "resolved": "https://registry.npmjs.org/handlebars-layouts/-/handlebars-layouts-1.1.0.tgz"
}, },
"har-schema": {
"version": "1.0.5",
"from": "har-schema@>=1.0.5 <2.0.0",
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz"
},
"har-validator": { "har-validator": {
"version": "2.0.6", "version": "2.0.6",
"from": "har-validator@>=2.0.6 <2.1.0", "from": "har-validator@>=2.0.6 <2.1.0",
@@ -6091,20 +6042,15 @@
"from": "html-minifier@>=3.2.3 <4.0.0", "from": "html-minifier@>=3.2.3 <4.0.0",
"resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.4.0.tgz", "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.4.0.tgz",
"dependencies": { "dependencies": {
"async": {
"version": "0.2.10",
"from": "async@>=0.2.6 <0.3.0",
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz"
},
"clean-css": { "clean-css": {
"version": "4.0.8", "version": "4.0.8",
"from": "clean-css@>=4.0.0 <4.1.0", "from": "clean-css@>=4.0.0 <4.1.0",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.0.8.tgz" "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.0.8.tgz"
}, },
"uglify-js": { "uglify-js": {
"version": "2.8.0", "version": "2.8.7",
"from": "uglify-js@>=2.8.0 <2.9.0", "from": "uglify-js@>=2.8.0 <2.9.0",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.0.tgz" "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.7.tgz"
} }
} }
}, },
@@ -6141,9 +6087,9 @@
} }
}, },
"http-errors": { "http-errors": {
"version": "1.5.1", "version": "1.6.1",
"from": "http-errors@>=1.5.1 <1.6.0", "from": "http-errors@>=1.6.1 <1.7.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz" "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz"
}, },
"http-proxy": { "http-proxy": {
"version": "1.16.2", "version": "1.16.2",
@@ -6158,9 +6104,9 @@
"dev": true "dev": true
}, },
"http-proxy-middleware": { "http-proxy-middleware": {
"version": "0.17.3", "version": "0.17.4",
"from": "http-proxy-middleware@>=0.17.0 <0.18.0", "from": "http-proxy-middleware@>=0.17.0 <0.18.0",
"resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.3.tgz", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"is-extglob": { "is-extglob": {
@@ -6302,11 +6248,6 @@
"from": "isarray@0.0.1", "from": "isarray@0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
}, },
"json-stable-stringify": {
"version": "1.0.1",
"from": "json-stable-stringify@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz"
},
"ordered-read-streams": { "ordered-read-streams": {
"version": "0.3.0", "version": "0.3.0",
"from": "ordered-read-streams@>=0.3.0 <0.4.0", "from": "ordered-read-streams@>=0.3.0 <0.4.0",
@@ -6645,9 +6586,9 @@
"resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz" "resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz"
}, },
"ip": { "ip": {
"version": "1.1.4", "version": "1.1.5",
"from": "ip@>=1.1.2 <2.0.0", "from": "ip@>=1.1.2 <2.0.0",
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.4.tgz" "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz"
}, },
"ip-regex": { "ip-regex": {
"version": "1.0.3", "version": "1.0.3",
@@ -6713,14 +6654,7 @@
"is-expression": { "is-expression": {
"version": "3.0.0", "version": "3.0.0",
"from": "is-expression@>=3.0.0 <4.0.0", "from": "is-expression@>=3.0.0 <4.0.0",
"resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz", "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz"
"dependencies": {
"acorn": {
"version": "4.0.11",
"from": "acorn@>=4.0.2 <4.1.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz"
}
}
}, },
"is-extendable": { "is-extendable": {
"version": "0.1.1", "version": "0.1.1",
@@ -7043,19 +6977,12 @@
"dev": true "dev": true
}, },
"uglify-js": { "uglify-js": {
"version": "2.8.0", "version": "2.8.7",
"from": "uglify-js@>=2.6.0 <3.0.0", "from": "uglify-js@>=2.6.0 <3.0.0",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.0.tgz", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.7.tgz",
"dev": true, "dev": true,
"optional": true, "optional": true,
"dependencies": { "dependencies": {
"async": {
"version": "0.2.10",
"from": "async@>=0.2.6 <0.3.0",
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
"dev": true,
"optional": true
},
"source-map": { "source-map": {
"version": "0.5.6", "version": "0.5.6",
"from": "source-map@~0.5.1", "from": "source-map@~0.5.1",
@@ -7104,11 +7031,6 @@
"from": "jade@>=1.11.0 <1.12.0", "from": "jade@>=1.11.0 <1.12.0",
"resolved": "https://registry.npmjs.org/jade/-/jade-1.11.0.tgz", "resolved": "https://registry.npmjs.org/jade/-/jade-1.11.0.tgz",
"dependencies": { "dependencies": {
"async": {
"version": "0.2.10",
"from": "async@>=0.2.6 <0.3.0",
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz"
},
"clean-css": { "clean-css": {
"version": "3.4.25", "version": "3.4.25",
"from": "clean-css@>=3.1.9 <4.0.0", "from": "clean-css@>=3.1.9 <4.0.0",
@@ -7132,9 +7054,9 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz" "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz"
}, },
"uglify-js": { "uglify-js": {
"version": "2.8.0", "version": "2.8.7",
"from": "uglify-js@>=2.4.19 <3.0.0", "from": "uglify-js@>=2.4.19 <3.0.0",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.0.tgz", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.7.tgz",
"dependencies": { "dependencies": {
"source-map": { "source-map": {
"version": "0.5.6", "version": "0.5.6",
@@ -7225,9 +7147,9 @@
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz" "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz"
}, },
"js-yaml": { "js-yaml": {
"version": "3.8.1", "version": "3.8.2",
"from": "js-yaml@>=3.1.0 <4.0.0", "from": "js-yaml@>=3.1.0 <4.0.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.1.tgz", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.2.tgz",
"dependencies": { "dependencies": {
"esprima": { "esprima": {
"version": "3.1.3", "version": "3.1.3",
@@ -7268,9 +7190,9 @@
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz" "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"
}, },
"json-stable-stringify": { "json-stable-stringify": {
"version": "0.0.1", "version": "1.0.1",
"from": "json-stable-stringify@>=0.0.0 <0.1.0", "from": "json-stable-stringify@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz" "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz"
}, },
"json-stringify-safe": { "json-stringify-safe": {
"version": "5.0.1", "version": "5.0.1",
@@ -7493,20 +7415,11 @@
"dev": true "dev": true
}, },
"uglify-js": { "uglify-js": {
"version": "2.8.0", "version": "2.8.7",
"from": "uglify-js@>=2.6.0 <3.0.0", "from": "uglify-js@>=2.6.0 <3.0.0",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.0.tgz", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.7.tgz",
"dev": true,
"optional": true,
"dependencies": {
"async": {
"version": "0.2.10",
"from": "async@>=0.2.6 <0.3.0",
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
"dev": true, "dev": true,
"optional": true "optional": true
}
}
}, },
"which": { "which": {
"version": "1.2.12", "version": "1.2.12",
@@ -7554,6 +7467,12 @@
"resolved": "https://registry.npmjs.org/karma-sinon-chai/-/karma-sinon-chai-1.2.4.tgz", "resolved": "https://registry.npmjs.org/karma-sinon-chai/-/karma-sinon-chai-1.2.4.tgz",
"dev": true "dev": true
}, },
"karma-sinon-stub-promise": {
"version": "1.0.0",
"from": "karma-sinon-stub-promise@latest",
"resolved": "https://registry.npmjs.org/karma-sinon-stub-promise/-/karma-sinon-stub-promise-1.0.0.tgz",
"dev": true
},
"karma-sourcemap-loader": { "karma-sourcemap-loader": {
"version": "0.3.7", "version": "0.3.7",
"from": "karma-sourcemap-loader@>=0.3.7 <0.4.0", "from": "karma-sourcemap-loader@>=0.3.7 <0.4.0",
@@ -7741,12 +7660,6 @@
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"dev": true "dev": true
}, },
"json-stable-stringify": {
"version": "1.0.1",
"from": "json-stable-stringify@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
"dev": true
},
"ordered-read-streams": { "ordered-read-streams": {
"version": "0.3.0", "version": "0.3.0",
"from": "ordered-read-streams@>=0.3.0 <0.4.0", "from": "ordered-read-streams@>=0.3.0 <0.4.0",
@@ -9003,6 +8916,11 @@
"from": "node-pre-gyp@0.6.32", "from": "node-pre-gyp@0.6.32",
"resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.32.tgz", "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.32.tgz",
"dependencies": { "dependencies": {
"caseless": {
"version": "0.12.0",
"from": "caseless@>=0.12.0 <0.13.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
},
"form-data": { "form-data": {
"version": "2.1.2", "version": "2.1.2",
"from": "form-data@>=2.1.1 <2.2.0", "from": "form-data@>=2.1.1 <2.2.0",
@@ -9013,15 +8931,20 @@
"from": "glob@>=7.0.5 <8.0.0", "from": "glob@>=7.0.5 <8.0.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz" "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz"
}, },
"har-validator": {
"version": "4.2.1",
"from": "har-validator@>=4.2.0 <4.3.0",
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz"
},
"qs": { "qs": {
"version": "6.3.1", "version": "6.3.1",
"from": "qs@>=6.3.0 <6.4.0", "from": "qs@>=6.3.0 <6.4.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.3.1.tgz" "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.1.tgz"
}, },
"request": { "request": {
"version": "2.79.0", "version": "2.80.0",
"from": "request@>=2.79.0 <3.0.0", "from": "request@>=2.79.0 <3.0.0",
"resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz" "resolved": "https://registry.npmjs.org/request/-/request-2.80.0.tgz"
}, },
"rimraf": { "rimraf": {
"version": "2.5.4", "version": "2.5.4",
@@ -9287,9 +9210,9 @@
"dev": true "dev": true
}, },
"object-hash": { "object-hash": {
"version": "1.1.5", "version": "1.1.7",
"from": "object-hash@>=1.1.4 <2.0.0", "from": "object-hash@>=1.1.4 <2.0.0",
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.1.5.tgz", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.1.7.tgz",
"dev": true "dev": true
}, },
"object-inspect": { "object-inspect": {
@@ -9727,6 +9650,11 @@
"from": "pend@>=1.2.0 <1.3.0", "from": "pend@>=1.2.0 <1.3.0",
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz"
}, },
"performance-now": {
"version": "0.2.0",
"from": "performance-now@>=0.2.0 <0.3.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz"
},
"phantom-bridge": { "phantom-bridge": {
"version": "2.0.1", "version": "2.0.1",
"from": "phantom-bridge@>=2.0.0 <3.0.0", "from": "phantom-bridge@>=2.0.0 <3.0.0",
@@ -10276,7 +10204,7 @@
"dependencies": { "dependencies": {
"acorn": { "acorn": {
"version": "4.0.11", "version": "4.0.11",
"from": "acorn@>=4.0.4 <5.0.0", "from": "acorn@^4.0.4",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz" "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz"
} }
} }
@@ -10303,11 +10231,6 @@
"from": "asap@>=2.0.3 <2.1.0", "from": "asap@>=2.0.3 <2.1.0",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz" "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz"
}, },
"async": {
"version": "0.2.10",
"from": "async@>=0.2.6 <0.3.0",
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz"
},
"clean-css": { "clean-css": {
"version": "3.4.25", "version": "3.4.25",
"from": "clean-css@>=3.3.0 <4.0.0", "from": "clean-css@>=3.3.0 <4.0.0",
@@ -10334,9 +10257,9 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz" "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz"
}, },
"uglify-js": { "uglify-js": {
"version": "2.8.0", "version": "2.8.7",
"from": "uglify-js@>=2.6.1 <3.0.0", "from": "uglify-js@>=2.6.1 <3.0.0",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.0.tgz", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.7.tgz",
"dependencies": { "dependencies": {
"source-map": { "source-map": {
"version": "0.5.6", "version": "0.5.6",
@@ -11049,10 +10972,20 @@
} }
} }
}, },
"http-errors": {
"version": "1.5.1",
"from": "http-errors@>=1.5.1 <1.6.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz"
},
"mime": { "mime": {
"version": "1.3.4", "version": "1.3.4",
"from": "mime@1.3.4", "from": "mime@1.3.4",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz"
},
"setprototypeof": {
"version": "1.0.2",
"from": "setprototypeof@1.0.2",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz"
} }
} }
}, },
@@ -11099,9 +11032,9 @@
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz"
}, },
"setprototypeof": { "setprototypeof": {
"version": "1.0.2", "version": "1.0.3",
"from": "setprototypeof@1.0.2", "from": "setprototypeof@1.0.3",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz" "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz"
}, },
"sha.js": { "sha.js": {
"version": "2.4.8", "version": "2.4.8",
@@ -11116,7 +11049,14 @@
"shasum": { "shasum": {
"version": "1.0.2", "version": "1.0.2",
"from": "shasum@>=1.0.0 <2.0.0", "from": "shasum@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz" "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz",
"dependencies": {
"json-stable-stringify": {
"version": "0.0.1",
"from": "json-stable-stringify@>=0.0.0 <0.1.0",
"resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz"
}
}
}, },
"shebang-command": { "shebang-command": {
"version": "1.2.0", "version": "1.2.0",
@@ -11428,9 +11368,9 @@
"optional": true "optional": true
}, },
"sshpk": { "sshpk": {
"version": "1.10.2", "version": "1.11.0",
"from": "sshpk@>=1.7.0 <2.0.0", "from": "sshpk@>=1.7.0 <2.0.0",
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.11.0.tgz",
"dependencies": { "dependencies": {
"assert-plus": { "assert-plus": {
"version": "1.0.0", "version": "1.0.0",
@@ -11820,16 +11760,9 @@
} }
}, },
"syntax-error": { "syntax-error": {
"version": "1.1.6", "version": "1.3.0",
"from": "syntax-error@>=1.1.1 <2.0.0", "from": "syntax-error@>=1.1.1 <2.0.0",
"resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.1.6.tgz", "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.3.0.tgz"
"dependencies": {
"acorn": {
"version": "2.7.0",
"from": "acorn@>=2.7.0 <3.0.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz"
}
}
}, },
"table": { "table": {
"version": "3.8.3", "version": "3.8.3",
@@ -12727,13 +12660,13 @@
}, },
"vue-hot-reload-api": { "vue-hot-reload-api": {
"version": "2.0.11", "version": "2.0.11",
"from": "vue-hot-reload-api@>=2.0.1 <3.0.0", "from": "vue-hot-reload-api@>=2.0.11 <3.0.0",
"resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.0.11.tgz" "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.0.11.tgz"
}, },
"vue-loader": { "vue-loader": {
"version": "11.1.3", "version": "11.1.4",
"from": "vue-loader@>=11.0.0 <12.0.0", "from": "vue-loader@>=11.0.0 <12.0.0",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-11.1.3.tgz", "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-11.1.4.tgz",
"dependencies": { "dependencies": {
"loader-utils": { "loader-utils": {
"version": "1.0.2", "version": "1.0.2",
@@ -12801,11 +12734,6 @@
"from": "webpack@>=2.2.1 <3.0.0", "from": "webpack@>=2.2.1 <3.0.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-2.2.1.tgz", "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.2.1.tgz",
"dependencies": { "dependencies": {
"acorn": {
"version": "4.0.11",
"from": "acorn@>=4.0.4 <5.0.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz"
},
"async": { "async": {
"version": "2.1.5", "version": "2.1.5",
"from": "async@>=2.1.2 <3.0.0", "from": "async@>=2.1.2 <3.0.0",
@@ -12822,15 +12750,10 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz" "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz"
}, },
"uglify-js": { "uglify-js": {
"version": "2.8.0", "version": "2.8.7",
"from": "uglify-js@>=2.7.5 <3.0.0", "from": "uglify-js@>=2.7.5 <3.0.0",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.0.tgz", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.7.tgz",
"dependencies": { "dependencies": {
"async": {
"version": "0.2.10",
"from": "async@>=0.2.6 <0.3.0",
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz"
},
"yargs": { "yargs": {
"version": "3.10.0", "version": "3.10.0",
"from": "yargs@~3.10.0", "from": "yargs@~3.10.0",
@@ -12863,12 +12786,6 @@
"resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-2.3.0.tgz", "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-2.3.0.tgz",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"acorn": {
"version": "4.0.11",
"from": "acorn@>=4.0.11 <5.0.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz",
"dev": true
},
"ejs": { "ejs": {
"version": "2.5.6", "version": "2.5.6",
"from": "ejs@>=2.5.5 <3.0.0", "from": "ejs@>=2.5.5 <3.0.0",
@@ -12958,7 +12875,14 @@
"with": { "with": {
"version": "4.0.3", "version": "4.0.3",
"from": "with@>=4.0.0 <4.1.0", "from": "with@>=4.0.0 <4.1.0",
"resolved": "https://registry.npmjs.org/with/-/with-4.0.3.tgz" "resolved": "https://registry.npmjs.org/with/-/with-4.0.3.tgz",
"dependencies": {
"acorn": {
"version": "1.2.2",
"from": "acorn@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz"
}
}
}, },
"wns": { "wns": {
"version": "0.5.3", "version": "0.5.3",

View File

@@ -190,6 +190,7 @@
"karma-mocha-reporter": "^1.1.1", "karma-mocha-reporter": "^1.1.1",
"karma-phantomjs-launcher": "^1.0.0", "karma-phantomjs-launcher": "^1.0.0",
"karma-sinon-chai": "^1.2.0", "karma-sinon-chai": "^1.2.0",
"karma-sinon-stub-promise": "^1.0.0",
"karma-sourcemap-loader": "^0.3.7", "karma-sourcemap-loader": "^0.3.7",
"karma-spec-reporter": "0.0.24", "karma-spec-reporter": "0.0.24",
"karma-webpack": "^2.0.2", "karma-webpack": "^2.0.2",

View File

@@ -2,8 +2,17 @@
// and babel-runtime doesn't affect external libraries // and babel-runtime doesn't affect external libraries
require('babel-polyfill'); require('babel-polyfill');
// require all test files (files that ends with .spec.js) // Automatically setup SinonJS' sandbox for each test
let testsContext = require.context('./specs', true, /\.spec$/); beforeEach(() => {
global.sandbox = sinon.sandbox.create();
});
afterEach(() => {
global.sandbox.restore();
});
// require all test files
let testsContext = require.context('./specs', true, /\.js$/);
testsContext.keys().forEach(testsContext); testsContext.keys().forEach(testsContext);
// require all .vue and .js files except main.js for coverage. // require all .vue and .js files except main.js for coverage.

View File

@@ -17,7 +17,7 @@ module.exports = function (config) {
// http://karma-runner.github.io/0.13/config/browsers.html // http://karma-runner.github.io/0.13/config/browsers.html
// 2. add it to the `browsers` array below. // 2. add it to the `browsers` array below.
browsers: ['PhantomJS'], browsers: ['PhantomJS'],
frameworks: ['mocha', 'sinon-chai'], frameworks: ['mocha', 'sinon-stub-promise', 'sinon-chai', 'chai-as-promised', 'chai'],
reporters: ['spec', 'coverage'], reporters: ['spec', 'coverage'],
files: ['./index.js'], files: ['./index.js'],
preprocessors: { preprocessors: {

View File

@@ -0,0 +1,17 @@
import { fetchAll as fetchAllGuilds } from 'client/store/actions/guilds';
import axios from 'axios';
import store from 'client/store';
describe('guilds actions', () => {
it('fetchAll', async () => {
const guilds = [{_id: 1}];
sandbox
.stub(axios, 'get')
.withArgs('/api/v3/groups?type=publicGuilds')
.returns(Promise.resolve({data: {data: guilds}}));
await fetchAllGuilds(store);
expect(store.state.guilds).to.equal(guilds);
});
});

View File

@@ -0,0 +1,14 @@
import { fetchUserTasks } from 'client/store/actions/tasks';
import axios from 'axios';
import store from 'client/store';
describe('tasks actions', () => {
it('fetchUserTasks', async () => {
const tasks = [{_id: 1}];
sandbox.stub(axios, 'get').withArgs('/api/v3/tasks/user').returns(Promise.resolve({data: {data: tasks}}));
await fetchUserTasks(store);
expect(store.state.tasks).to.equal(tasks);
});
});

View File

@@ -0,0 +1,14 @@
import { fetch as fetchUser } from 'client/store/actions/user';
import axios from 'axios';
import store from 'client/store';
describe('user actions', () => {
it('fetch', async () => {
const user = {_id: 1};
sandbox.stub(axios, 'get').withArgs('/api/v3/user').returns(Promise.resolve({data: {data: user}}));
await fetchUser(store);
expect(store.state.user).to.equal(user);
});
});

View File

@@ -21,7 +21,7 @@
// & { @import "~semantic-ui-less/definitions/elements/container"; } // & { @import "~semantic-ui-less/definitions/elements/container"; }
// & { @import "~semantic-ui-less/definitions/elements/divider"; } // & { @import "~semantic-ui-less/definitions/elements/divider"; }
// & { @import "~semantic-ui-less/definitions/elements/flag"; } // & { @import "~semantic-ui-less/definitions/elements/flag"; }
// & { @import "~semantic-ui-less/definitions/elements/header"; } & { @import "~semantic-ui-less/definitions/elements/header"; }
& { @import "~semantic-ui-less/definitions/elements/icon"; } & { @import "~semantic-ui-less/definitions/elements/icon"; }
// & { @import "~semantic-ui-less/definitions/elements/image"; } // & { @import "~semantic-ui-less/definitions/elements/image"; }
& { @import "~semantic-ui-less/definitions/elements/input"; } & { @import "~semantic-ui-less/definitions/elements/input"; }

View File

@@ -3,6 +3,7 @@
.ui.right.floated.button(:class="[isMember ? 'red' : 'green']") {{ isMember ? $t('leave') : $t('join') }} .ui.right.floated.button(:class="[isMember ? 'red' : 'green']") {{ isMember ? $t('leave') : $t('join') }}
.floated .floated
// TODO v-once? // TODO v-once?
router-link(:to="{ name: 'guild', params: { guildId: guild._id } }")
h3.ui.header {{ guild.name }} h3.ui.header {{ guild.name }}
p {{ guild.description }} p {{ guild.description }}
</template> </template>

View File

@@ -0,0 +1,68 @@
<template lang="pug">
// TODO this is necessary until we have a way to wait for data to be loaded from the server
div(v-if="guild")
.ui.grid
.row
.eight.wide.column.left.floated
h2.ui.header.sixteen.wide.column {{guild.name}}
.sixteen.wide.column
h4.ui.left.floated.header {{$t('groupLeader')}}
p {{guild.leader.profile.name}}
.eight.wide.column.right.floated
.ui.basic.segment.right.floated
// TODO extract button to component?
.ui.button(:class="[isMember ? 'red' : 'green']") {{ isMember ? $t('leave') : $t('join') }}
.ui.segment.compact.right.floated
h3.ui.header.centered
| {{guild.memberCount}}
.sub.header(v-once) {{ $t('members') }}
.row
.five.wide.column
h3.ui.header(v-once) {{ $t('description') }}
p {{ guild.description }}
.eleven.wide.column
h3.ui.header(v-once) {{ $t('chat') }}
.ui.minimal.comments
.comment(v-for="msg in guild.chat", :key="msg.id")
.content
a.author {{msg.user}}
.metadata
span.date {{msg.timestamp}}
.text {{msg.text}}
</template>
<script>
import axios from 'axios';
import groupUtilities from '../../../mixins/groupsUtilities';
import { mapState } from '../../../store';
export default {
mixins: [groupUtilities],
props: ['guildId'],
data () {
return {
guild: null,
};
},
computed: {
...mapState(['user']),
isMember () {
return this.isMemberOfGroup(this.user, this.guild);
},
},
created () {
this.fetchGuild();
},
watch: {
// call again the method if the route changes (when this route is already active)
$route: 'fetchGuild',
},
methods: {
fetchGuild () {
axios.get(`/api/v3/groups/${this.guildId}`).then(response => {
this.guild = response.data.data;
});
},
},
};
</script>

View File

@@ -19,6 +19,7 @@ import TavernPage from './components/social/tavern';
import InboxPage from './components/social/inbox/index'; import InboxPage from './components/social/inbox/index';
import InboxConversationPage from './components/social/inbox/conversationPage'; import InboxConversationPage from './components/social/inbox/conversationPage';
import GuildsDiscoveryPage from './components/social/guilds/discovery/index'; import GuildsDiscoveryPage from './components/social/guilds/discovery/index';
import GuildPage from './components/social/guilds/guild';
Vue.use(VueRouter); Vue.use(VueRouter);
@@ -70,6 +71,12 @@ export default new VueRouter({
path: '', path: '',
component: GuildsDiscoveryPage, component: GuildsDiscoveryPage,
}, },
{
name: 'guild',
path: ':guildId',
component: GuildPage,
props: true,
},
], ],
}, },
], ],