Outlook_Addin_LLM/node_modules/eslint-plugin-office-addins/test/rules/call-sync-before-read.test.ts

190 lines
5.7 KiB
TypeScript

import { ESLintUtils } from '@typescript-eslint/utils'
import rule from '../../src/rules/call-sync-before-read';
const ruleTester = new ESLintUtils.RuleTester({
parser: '@typescript-eslint/parser',
});
ruleTester.run('call-sync-before-read', rule, {
valid: [
{
code: `
Excel.run(function (context) {
var selectedRange = context.workbook.getSelectedRange();
selectedRange.load('address');
await context.sync()
console.log('The selected range is: ' + selectedRange.address);
});`
},
{
code: `
Excel.run(function (context) {
var selectedRange;
selectedRange = context.workbook.getSelectedRange();
selectedRange.load('address');
await context.sync()
console.log('The selected range is: ' + selectedRange.address);
});`
},
{
code: `
Excel.run(function (context) {
var selectedRange = context.workbook.getSelectedRange();
selectedRange.load('address');
return context.sync()
.then(function () {
console.log('The selected range is: ' + selectedRange.address);
});
})`
},
{
code: `
Excel.run(function (context) {
var dataSheet = context.workbook.worksheets.getItemOrNullObject("Data");
await context.sync();
if (dataSheet.isNullObject) {
dataSheet.position = 1;
}
})`
},
{
code: `
Excel.run(function (context) {
var dataSheet = context.workbook.worksheets.getItemOrNullObject("Data");
if (true) {
await context.sync();
dataSheet.position = 1;
}
})`
},
{
code: `
Excel.run(function (context) {
var dataSheet = context.workbook.worksheets.getItemOrNullObject("Data");
if (true) {
dataSheet.position = 1; // Write is OK
}
await context.sync();
});`
},
{
code: `
var range = context.workbook.worksheets.getItem(sheetName).getRange(rangeAddress);
range.format.fill.color = "yellow";`
},
{
code: `
var range = context.workbook.worksheets.getItem(sheetName).getRange(rangeAddress);
range.format.font.load('color');`
},
{
code: `
var table = worksheet.getTables();
return context.sync().then(function () {
table.delete();
});`
},
{
code: `
var range = worksheet.getSelectedRange();
range.getCell(0,0);`
},
{
code: `
var range = worksheet.getSelectedRange();
range.load("font");
context.sync();
range.font.getColor();`
},
{
code: `
await Excel.run(async (context) => {
const sheet = context.workbook.worksheets.getActiveWorksheet();
let data: string[][] = [["one"], ["two"]];
const rangeAddress = data.length;
const range = sheet.getRange(rangeAddress);
range.values = data;
range.format.autofitColumns();
return context.sync();
});`
},
],
invalid: [
{
code: `
Excel.run(function (context) {
var selectedRange = context.workbook.getSelectedRange();
selectedRange.load('address');
console.log('The selected range is: ' + selectedRange.address);
});`,
errors: [{ messageId: "callSync", data: { name: "selectedRange" } }]
},
{
code: `
Excel.run(function (context) {
var selectedRange = context.workbook.getSelectedRange();
selectedRange.load('address');
console.log('The selected range is: ' + selectedRange.address);
await context.sync();
});`,
errors: [{ messageId: "callSync", data: { name: "selectedRange" } }]
},
{
code: `
Excel.run(function (context) {
var selectedRange = context.workbook.getSelectedRange();
var selectedRange2 = context.workbook.getSelectedRange();
selectedRange.load('address');
selectedRange2.load('address');
console.log('The selected range is: ' + selectedRange.address);
console.log('This should be the same: ' + selectedRange2.address);
});`,
errors: [
{ messageId: "callSync", data: { name: "selectedRange" } },
{ messageId: "callSync", data: { name: "selectedRange2" } }
]
},
{
code: `
Excel.run(function (context) {
var dataSheet = context.workbook.worksheets.getItemOrNullObject("Data");
if (dataSheet.isNullObject) {
dataSheet.position = 1;
}
});`,
errors: [
{ messageId: "callSync", data: { name: "dataSheet" } },
]
},
{
code: `
Excel.run(function (context) {
var dataSheet = context.workbook.worksheets.getItemOrNullObject("Data");
if (true) {
var pos = dataSheet.position;
}
await context.sync();
});`,
errors: [ { messageId: "callSync", data: { name: "dataSheet" } } ]
},
{
code: `
var range = context.workbook.worksheets.getItem(sheetName).getRange(rangeAddress);
range.format.fill.color == "yellow";`,
errors: [ { messageId: "callSync", data: { name: "range" } } ]
},
{
code: `
var range = context.workbook.worksheets.getItem(sheetName).getRange(rangeAddress);
var value = range.format.fill.color;
value = range.format.fill.color;`,
errors: [
{ messageId: "callSync", data: { name: "range" } },
{ messageId: "callSync", data: { name: "range" } }
]
},
]
});