mirror of https://github.com/nocodb/nocodb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.2 KiB
39 lines
1.2 KiB
3 years ago
|
import { loginPage, projectsPage } from "../../support/page_objects/navigation"
|
||
|
import { staticProjects, roles } from "../../support/page_objects/projectConstants"
|
||
|
|
||
|
function parseJwt (token) {
|
||
|
var base64Url = token.split('.')[1];
|
||
|
var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
|
||
|
var jsonPayload = decodeURIComponent(atob(base64).split('').map(function(c) {
|
||
|
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
|
||
|
}).join(''));
|
||
|
|
||
|
return JSON.parse(jsonPayload);
|
||
|
};
|
||
|
|
||
|
const genTest = (type, xcdb) => {
|
||
|
|
||
|
describe(`${type.toUpperCase()} Authentication token validation`, () => {
|
||
|
|
||
|
// Run once before test- open project (rest/graphql)
|
||
|
//
|
||
|
before(() => {
|
||
|
loginPage.loginAndOpenProject(type, xcdb)
|
||
|
})
|
||
|
|
||
|
it('auth info', ()=> {
|
||
|
let obj = JSON.parse(localStorage['vuex'])
|
||
|
var decoded = parseJwt(obj["users"]["token"])
|
||
|
let email = decoded["email"]
|
||
|
let role = decoded["roles"]
|
||
|
|
||
|
assert.equal(email, roles.owner.credentials.username)
|
||
|
assert.equal(role, "user")
|
||
|
})
|
||
|
})
|
||
|
}
|
||
|
|
||
|
genTest('rest')
|
||
|
genTest('graphql')
|
||
|
genTest('rest', true)
|
||
|
genTest('graphql', true)
|