mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-16 17:46:45 +00:00
113 lines
4.3 KiB
TypeScript
113 lines
4.3 KiB
TypeScript
import { expect, test } from '../../fixtures/base';
|
|
|
|
test.describe('Evaluations @capability:proxy', () => {
|
|
test.beforeEach(async ({ n8n, proxyServer }) => {
|
|
await proxyServer.clearAllExpectations();
|
|
|
|
await n8n.goHome();
|
|
await n8n.workflows.clickAddWorkflowButton();
|
|
});
|
|
|
|
test('should load evaluations workflow and execute twice', async ({ n8n, api, proxyServer }) => {
|
|
await proxyServer.loadExpectations('evaluations');
|
|
|
|
await api.credentialApi.createCredentialFromDefinition({
|
|
name: 'Test Google Sheets',
|
|
type: 'googleApi',
|
|
data: {
|
|
email: 'email@quickstart-1234.iam.gserviceaccount.com',
|
|
// mock private key
|
|
privateKey: `-----BEGIN PRIVATE KEY-----
|
|
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDx1//AaoSkyHYl
|
|
npqS3+uaePYhJXKD/T1h6zGThAUooN7ZzWK46nNcU1vghQMTlPMHfUTbl4xzZxEL
|
|
OYjyTPOKpwJvhmy44MU+zTQYJuUaU4dQuOCnnC61CL91Xy+8GJd7PvdUeVRWENWu
|
|
zzO825Fxeiy2qnbrOJfhYh+f9znwWM2R8/V6LIp1HSWNBU0h/NCesmVhGwTP2H/P
|
|
wGgFPzl9+effW8TgmAukVuZoG+z8pOiqJnZLgTOO++PLyM6UJe560UnAbv0yP4y5
|
|
lZ370XwOQ6gVIiB0+8Z2A3tJp6ackfoMfDYbuU+CAhFPqkdvXgbrYciUCr6fzINo
|
|
ImK6CcSDAgMBAAECggEAF0+XokdiI7QC11tzUMbuocQZDVbbs+c7/G08KRjnmmPv
|
|
NxU599L5baPHTlvj0QZhao5jjbsM2a7MkMVp8tkB/JJehLtzTVq1CHmlFNLi8Geu
|
|
ulQnq2A9jEuckMatBjdkmoeWNXlAbM9QmXn1ZbXQThzVpIHH1qJs2Veo7rVYy1bD
|
|
+hnzadyeXsHOC518wNAaF3b1UShybI3dlrHbXqqRmkOZP272IKfmvZ2KOcnFC+MT
|
|
cWLUGWBTq2YK+UJv09OXHEBnonrm18m2Sku+/PhFwjOiifIK/1MWILss60IB7dFm
|
|
7Fe7NAtYQMPZyDEqY5Xo+K4FwWYzfxfHPiJf7k0DqQKBgQD5Rz+HCZC8V5c1oK8/
|
|
1hGthyh5JdXxW7C8D1WVuo7W2OHrOJSDXjGhsxMjnKYdq/1YybJl9XpQSvZeumto
|
|
YazNiJqAexIlpmEHLW5gDtX3xpM0dujuJudTHYfveugtR8i/EZpWpFKv45/6Rm33
|
|
Yt2PaMjLuO7yW0buEjSQInHtHwKBgQD4XW44YujgF+xvMmx8+QyyNI2UNI1ZmnsU
|
|
VZLmDAn5+WDz5YtBXN9JGIXIk5279S7xzu9xyq7Ih6uedxE/hmzaHSZ1gl9Xasci
|
|
n86FGaGPm6RtEeZ8c68oqha7kddLoBwTPBoZq5NaCCaTh2TQkMPg+Ws3erM0pkyC
|
|
fqw1hzkYHQKBgQC2Iv3i3/VV+DXupCqIXRRrkx7abe/FO3aF4jppfXdSugNQR/YT
|
|
imZ/PIXWdmXVtk4VasIjx1oIgs1C57kE+qE1SAODrujSg5/Pi71jCFQEh54VLnEB
|
|
WYGZ9DDXpRkxxIqEOQtpFQWpqIrCZmWA5Ub3uttEJyrIADNyTfEEA3b0hwKBgHrn
|
|
STbQA2t5iz/PlQ4W9GhvRyxzAQu5PXTnj+UVSg6QkKDBE7NJsRjr8LA8FE9B2nRA
|
|
sg7+fJWxRYUKaNelvtIEoNZ/qIyKw3Zn3HvTHjcBj1GGDSfC24fk+5Dgb8j1t07x
|
|
a/0OAcIIzIYu9v2a1cPLyXnP10STksL0ymVGwEMlAoGBAK2dtYZllhooN/C4ssFW
|
|
nmfqICLWEc/UZSxmxau1rOz71GJiiHgXFmQgiZtpf3Qp3wKKtoFkf+sJ6zP2VX35
|
|
2tJcTO9lKm6kNa3eaveE/NJrkH5a0IpxrvDT1TvmnapaNEKuGZJAX5BNaggDrfEJ
|
|
m82JpEptTfAxFHtd8+Sb0U2G
|
|
-----END PRIVATE KEY-----`,
|
|
},
|
|
});
|
|
|
|
// Import the evaluations workflow
|
|
await n8n.canvas.importWorkflow('evaluations_loop.json', 'Evaluations');
|
|
|
|
// Open each node to ensure credentials are set
|
|
await n8n.canvas.openNode('When fetching a dataset row');
|
|
await n8n.page.keyboard.press('Escape');
|
|
|
|
// Open each node to ensure credentials are set
|
|
await n8n.canvas.openNode('Set outputs');
|
|
await n8n.page.keyboard.press('Escape');
|
|
|
|
// Execute workflow from canvas - first execution
|
|
await n8n.canvas.clickExecuteWorkflowButton();
|
|
|
|
// wait for first run to finish
|
|
await n8n.notifications.waitForNotificationAndClose('Successful', { timeout: 10000 });
|
|
|
|
// wait for second run to finish
|
|
await n8n.notifications.waitForNotificationAndClose('Successful', { timeout: 10000 });
|
|
|
|
// 💡 To update recordings, remove stored expectations, set real credentials above and rerecord here.
|
|
// await proxyServer.recordExpectations('evaluations', { host: 'google', dedupe: true });
|
|
|
|
const batchUpdateRequests = (await proxyServer.getAllRequestsMade()).filter((request) => {
|
|
const path = request.httpRequest?.path;
|
|
const method = request.httpRequest?.method;
|
|
|
|
return method === 'POST' && typeof path === 'string' && path.endsWith('/values:batchUpdate');
|
|
});
|
|
|
|
/**
|
|
* Original Table in Google Sheets
|
|
* The loop should execute twice over both rows here
|
|
* Incrementing each value by 1 (expression in Set Output node)
|
|
*
|
|
* name email actual
|
|
test test 10
|
|
hello wolrd 104
|
|
*/
|
|
|
|
// Set output node was called twice in a loop, updating Google sheets output value
|
|
expect(batchUpdateRequests.length).toEqual(2);
|
|
expect((batchUpdateRequests[0]?.httpRequest?.body as { json: object })?.json).toEqual({
|
|
data: [
|
|
{
|
|
range: 'Sheet2!C2',
|
|
values: [[11]],
|
|
},
|
|
],
|
|
valueInputOption: 'RAW',
|
|
});
|
|
expect((batchUpdateRequests[1]?.httpRequest?.body as { json: object })?.json).toEqual({
|
|
data: [
|
|
{
|
|
range: 'Sheet2!C3',
|
|
values: [[105]],
|
|
},
|
|
],
|
|
valueInputOption: 'RAW',
|
|
});
|
|
});
|
|
});
|