2025-01-21 (C) Questetra, Inc. (MIT License) 3 2 This item searches for the folder with the specific name, directly under the specified folder on Google Drive. この工程は、Google ドライブ の指定フォルダ直下に、特定の名前のフォルダがあるかどうか調べます。 https://support.questetra.com/bpmn-icons/googledrive-foldersearch/ https://support.questetra.com/ja/bpmn-icons/googledrive-foldersearch/ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAA71JREFUWEfF V11oFFcU/s7M7K6TRs1vK1VUSGmbCK2SB6VFgpLWlYC2omIDLaUlCBGfimwWgw9Fu9mW0ocSoUhE aKmlgUgUyShiEUWSh4AW7L9CS5PGZhuTJmTi7swcmUn3d+ZOdtGy87Ts3HvOd77zfefeIZT5oVLy h2MP3wTMViJqZqABQM1/+6cIuMvMo4B8RYuGzhUbd0kArT1TK2VWj5CEg2DUFRWYkGALX5ikf3Kl q2bGb48vgJ0x/T2WEC86cWEmQoIsRIai6mkRCCGAcHy+F0ydRVW81CLik1qk4pDXMk8A4bj+NRhv LRW3pPeEs1pEbXeTVPDPE63clc3NRB4DTs8JfX6V7d2soKVRgizlk5cyGBdvmbj8velLDDHez9VE JoqtdoXU3/wE19Io452tCtQgUP2Uu3u/TliInE1CT/pgICQM1p9LuyMTZUdMP06Eo37wYweC2LhO wsQ0o245QZHzVxsm8O2IgS+vG74sMOPEpajabS/KAAjH9Um/6vdvUdD+qoKQAiykgFmdUb/CzcLE DCN+PoWfxi0xCEJCi6j1GQDOhCNrQLRjdQ2h+40g1tdnE/4zy6gIkdOO3Mdi4OodE59eTPmbhKU9 9sR0IoZj870gsec7tivY1axAkbIxDQuY/JexaiWBCoiYnmd8fsnAzV98BMl8UotWHHK27uzRhxnY 7AX55XUSjrQFULvcTbdNs92G2kr3u1u/W4h+I1YjASNDXeqWRQZ69EnAe85Hdwew9QXZVeXsAqP3 soENayS0bZJR4EpHJ2eupTA4KmQhoXWpi00N9+j2qhyCF7l4/SUZHdsUVC7Lr9Du87UfTXx8IYW1 dYRje4JYXe1m4d7fjI8GkxibYi9yLa1LlYUAbHEd3xdE0xoXLhQqPdchuZlsnZwfNXDqqqct8wC4 WlBK0FLA5gDMtsBLhJ+9HcSLz7qrH3/AmFtgBJR8ym0uQwG4tGJawNBtE/3D+Szki9DDhrubZbzb EsCyQBaz3wASmX7sAePDgST+SBToINeGokF0Yn8Qm9ZLTlXMwF/TjKdXuEewKHnSAPpHDHx1w0MD uYPIcYLHKH7leRmHdyioqiCHdltU9u9inx/+tNDd73E4FY5iO6DoMPqgLYBtTTLuzzBWVZHL7yIw cw8Zfd8Z0G6754DnYSQ6jm2fd74WQMMzhMpQcdXb7br+s4nYoMd5IDqOnZFcxIWkWPpF64QXkvSG sl7JsiDKeCn9X5go9VqeBlHWD5M0iLJ+mhUquSwfp49ru6X2PwLQFL0wM02BagAAAABJRU5ErkJg gg== { // 認証設定を作成し、指定 const jwtAuth = httpClient.createAuthSettingOAuth2JwtBearer('JWT', scope, '', '', privateKeyId, privateKey, serviceAccount, ''); configs.putObject('OAuth_V2', jwtAuth); configs.put('ParentFolderId', folderId,); configs.put('FolderName', folderName); // 文字型データ項目を準備して、config に指定 let dataType = 'STRING_TEXTAREA'; if (isSingleLine) { dataType = 'STRING_TEXTFIELD'; } const idDef = engine.createDataDefinition('ファイルID', 3, 'q_ids', dataType); configs.putObject('FolderIdItem', idDef); engine.setData(idDef, '事前文字列'); const urlDef = engine.createDataDefinition('表示URL', 4, 'q_urls', dataType); configs.putObject('WebViewUrlItem', urlDef); engine.setData(urlDef, '事前文字列'); return { idDef, urlDef }; }; /** * 異常系のテスト * @param errorMsg */ const assertError = (errorMsg) => { let failed = false; try { main(); } catch (e) { failed = true; expect(e.message).toEqual(errorMsg); } if (!failed) { fail(); } }; /** * スコープが空 */ test('Scope is empty', () => { const privateKeyId = 'key-12345'; const serviceAccount = 'service@questetra.com'; prepareConfigs('', privateKeyId, PRIVATE_KEY, serviceAccount, 'folderId-12345', 'フォルダ1'); assertError(`Scope ${SCOPE} must be included in the scope.`); }); const ANOTHER_SCOPE = 'https://www.googleapis.com/auth/cloud-platform'; /** * スコープに必須スコープを含まない */ test('Required scope is missing', () => { const privateKeyId = 'key-12345'; const serviceAccount = 'service@questetra.com'; prepareConfigs(ANOTHER_SCOPE, privateKeyId, PRIVATE_KEY, serviceAccount, 'folderId-12345', 'フォルダ1'); assertError(`Scope ${SCOPE} must be included in the scope.`); }); /** * 秘密鍵 ID が空 */ test('Private Key ID is empty', () => { const privateKeyId = ''; const serviceAccount = 'service@questetra.com'; prepareConfigs(SCOPE, privateKeyId, PRIVATE_KEY, serviceAccount, 'folderId-12345', 'フォルダ1'); assertError('Private Key ID is required.'); }); /** * カスタム秘密情報1 に設定されているサービスアカウントが空 */ test('Service Account is empty', () => { const privateKeyId = 'key-12345'; const serviceAccount = ''; prepareConfigs(SCOPE, privateKeyId, PRIVATE_KEY, serviceAccount, 'folderId-12345', 'フォルダ1'); assertError('Service Account must be set to Custom Secret 1.'); }); /** * フォルダ名が空でエラーになる場合 */ test('Folder Name is blank.', () => { const privateKeyId = 'key-12345'; const serviceAccount = 'service@questetra.com'; prepareConfigs(SCOPE, privateKeyId, PRIVATE_KEY, serviceAccount, 'folderId-12345', ''); }); /** * 検索したフォルダの ID を保存する文字型データ項目と検索したフォルダの表示 URL を保存するデータ項目の両方が未設定でエラーになる場合 */ test('Neither of Data Items to save result are set.', () => { const privateKeyId = 'key-12345'; const serviceAccount = 'service@questetra.com'; prepareConfigs(SCOPE, privateKeyId, PRIVATE_KEY, serviceAccount, 'folderId-12345', 'フォルダ1'); // ID を保存する文字型データ項目を未設定に上書き configs.put('FolderIdItem', ''); // URL を保存する文字型データ項目を未設定に上書き configs.put('WebViewUrlItem', ''); //