多维表格
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.
 
 
 
 
 
 

42 lines
1.4 KiB

import { loginPage, projectsPage } from "../../support/page_objects/navigation"
import { staticProjects, roles } from "../../support/page_objects/projectConstants"
import { mainPage } from "../../support/page_objects/mainPage"
// https://stackoverflow.com/questions/38552003/how-to-decode-jwt-token-in-javascript-without-using-a-library
// sample code to parse Jwt
//
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', ()=> {
var decodedToken = parseJwt(mainPage.getAuthToken())
let email = decodedToken["email"]
let role = decodedToken["roles"]
assert.equal(email, roles.owner.credentials.username)
assert.equal(role, "user")
})
})
}
genTest('rest')
genTest('graphql')
genTest('rest', true)
genTest('graphql', true)