mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-30 12:43:58 +00:00
SYNC: cloud test - use test login
This commit is contained in:
committed by
Diflow
parent
74b78141b4
commit
930b3d4538
@@ -14,35 +14,37 @@ beforeEach(() => {
|
|||||||
|
|
||||||
describe('Cloud tests', () => {
|
describe('Cloud tests', () => {
|
||||||
it('Private cloud', () => {
|
it('Private cloud', () => {
|
||||||
cy.testid('WidgetIconPanel_cloudAccount').click();
|
cy.window().then(win => {
|
||||||
|
win.__loginToCloudTest('dbgate.test@gmail.com');
|
||||||
cy.origin('https://identity.dbgate.io', () => {
|
|
||||||
cy.contains('Sign in with GitHub').click();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
cy.origin('https://github.com', () => {
|
// cy.testid('WidgetIconPanel_cloudAccount').click();
|
||||||
cy.get('#login_field').type('dbgatetest');
|
|
||||||
cy.get('#password').type('Pwd2020Db');
|
|
||||||
cy.get('input[type="submit"]').click();
|
|
||||||
});
|
|
||||||
|
|
||||||
cy.wait(3000);
|
// cy.origin('https://identity.dbgate.io', () => {
|
||||||
|
// cy.contains('Sign in with GitHub').click();
|
||||||
|
// });
|
||||||
|
|
||||||
cy.location('origin').then(origin => {
|
// cy.origin('https://github.com', () => {
|
||||||
if (origin === 'https://github.com') {
|
// cy.get('#login_field').type('dbgatetest');
|
||||||
// Still on github.com → an authorization step is waiting
|
// cy.get('#password').type('Pwd2020Db');
|
||||||
cy.origin('https://github.com', () => {
|
// cy.get('input[type="submit"]').click();
|
||||||
// Try once, don't wait the full default timeout
|
// });
|
||||||
cy.get('button[data-octo-click="oauth_application_authorization"]', { timeout: 500, log: false }).click(); // if the button exists it will be clicked
|
|
||||||
// if not, the short timeout elapses and we drop out
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
// Already back on localhost – nothing to authorize
|
|
||||||
cy.log('OAuth redirect skipped the Authorize screen');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
cy.themeshot('private-cloud-login');
|
// cy.wait(3000);
|
||||||
|
|
||||||
|
// cy.location('origin').then(origin => {
|
||||||
|
// if (origin === 'https://github.com') {
|
||||||
|
// // Still on github.com → an authorization step is waiting
|
||||||
|
// cy.origin('https://github.com', () => {
|
||||||
|
// // Try once, don't wait the full default timeout
|
||||||
|
// cy.get('button[data-octo-click="oauth_application_authorization"]', { timeout: 500, log: false }).click(); // if the button exists it will be clicked
|
||||||
|
// // if not, the short timeout elapses and we drop out
|
||||||
|
// });
|
||||||
|
// } else {
|
||||||
|
// // Already back on localhost – nothing to authorize
|
||||||
|
// cy.log('OAuth redirect skipped the Authorize screen');
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
|
||||||
cy.contains('Testing Connections').rightclick();
|
cy.contains('Testing Connections').rightclick();
|
||||||
cy.contains('Administrate access').click();
|
cy.contains('Administrate access').click();
|
||||||
|
|||||||
@@ -13,7 +13,12 @@ const {
|
|||||||
} = require('../auth/authProvider');
|
} = require('../auth/authProvider');
|
||||||
const storage = require('./storage');
|
const storage = require('./storage');
|
||||||
const { decryptPasswordString } = require('../utility/crypting');
|
const { decryptPasswordString } = require('../utility/crypting');
|
||||||
const { createDbGateIdentitySession, startCloudTokenChecking, readCloudTokenHolder } = require('../utility/cloudIntf');
|
const {
|
||||||
|
createDbGateIdentitySession,
|
||||||
|
startCloudTokenChecking,
|
||||||
|
readCloudTokenHolder,
|
||||||
|
readCloudTestTokenHolder,
|
||||||
|
} = require('../utility/cloudIntf');
|
||||||
const socket = require('../utility/socket');
|
const socket = require('../utility/socket');
|
||||||
|
|
||||||
const logger = getLogger('auth');
|
const logger = getLogger('auth');
|
||||||
@@ -154,5 +159,11 @@ module.exports = {
|
|||||||
return tokenHolder;
|
return tokenHolder;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
cloudTestLogin_meta: true,
|
||||||
|
async cloudTestLogin({ email }) {
|
||||||
|
const tokenHolder = await readCloudTestTokenHolder(email);
|
||||||
|
return tokenHolder;
|
||||||
|
},
|
||||||
|
|
||||||
authMiddleware,
|
authMiddleware,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -93,6 +93,22 @@ async function readCloudTokenHolder(sid) {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function readCloudTestTokenHolder(email) {
|
||||||
|
const resp = await axios.default.post(
|
||||||
|
`${DBGATE_IDENTITY_URL}/api/test-token`,
|
||||||
|
{ email },
|
||||||
|
{
|
||||||
|
headers: {
|
||||||
|
...getLicenseHttpHeaders(),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
);
|
||||||
|
if (resp.data?.email) {
|
||||||
|
return resp.data;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
async function loadCloudFiles() {
|
async function loadCloudFiles() {
|
||||||
try {
|
try {
|
||||||
const fileContent = await fs.readFile(path.join(datadir(), 'cloud-files.jsonl'), 'utf-8');
|
const fileContent = await fs.readFile(path.join(datadir(), 'cloud-files.jsonl'), 'utf-8');
|
||||||
@@ -410,4 +426,5 @@ module.exports = {
|
|||||||
putCloudContent,
|
putCloudContent,
|
||||||
removeCloudCachedConnection,
|
removeCloudCachedConnection,
|
||||||
readCloudTokenHolder,
|
readCloudTokenHolder,
|
||||||
|
readCloudTestTokenHolder,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -329,3 +329,14 @@ function disableApiLog() {
|
|||||||
|
|
||||||
window['enableApiLog'] = enableApiLog;
|
window['enableApiLog'] = enableApiLog;
|
||||||
window['disableApiLog'] = disableApiLog;
|
window['disableApiLog'] = disableApiLog;
|
||||||
|
|
||||||
|
window['__loginToCloudTest'] = async email => {
|
||||||
|
const tokenHolder = await apiCall('auth/cloud-test-login', { email });
|
||||||
|
|
||||||
|
if (tokenHolder) {
|
||||||
|
cloudSigninTokenHolder.set(tokenHolder);
|
||||||
|
selectedWidget.set('cloud-private');
|
||||||
|
} else {
|
||||||
|
showSnackbarError('Login failed');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user