Files
2025-03-07 19:22:02 +01:00

186 lines
5.5 KiB
TypeScript

import { RuleTester } from "@typescript-eslint/rule-tester";
import rule from "../../src/rules/call-sync-before-read";
const ruleTester = new RuleTester();
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" } },
],
},
],
});