import { NodeTestHarness } from '@nodes-testing/node-test-harness';
import nock from 'nock';

import { googleApiCredentials } from './credentials.fixture';

describe('Test Google BigQuery V2, executeQuery', () => {
	nock('https://oauth2.googleapis.com')
		.persist()
		.post('/token')
		.reply(200, { access_token: 'token' });

	nock('https://bigquery.googleapis.com/bigquery')
		.post('/v2/projects/test-project/jobs', {
			configuration: {
				query: {
					query: 'SELECT * FROM bigquery_node_dev_test_dataset.test_json;',
					useLegacySql: false,
				},
			},
		})
		.reply(200, {
			jobReference: {
				jobId: 'job_123',
			},
			status: {
				state: 'RUNNING',
			},
		})
		.get('/v2/projects/test-project/queries/job_123?maxResults=1000&timeoutMs=10000')
		.replyWithError('Internal server error');

	new NodeTestHarness().setupTests({
		workflowFiles: ['executeQueryContinueOnJobFail.workflow.json'],
		credentials: { googleApi: googleApiCredentials },
	});
});
