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

195 lines
4.8 KiB
TypeScript

import { RuleTester } from "@typescript-eslint/rule-tester";
import rule from "../../src/rules/call-sync-after-load";
const ruleTester = new RuleTester();
ruleTester.run("call-sync-after-load", rule, {
valid: [
{
code: `
var property = worksheet.getItem("sheet");
property.load("values");
await context.sync();
console.log(property.values);`,
},
{
code: `
var fakeGet = worksheet.notAGetFunction("props");
await context.sync();
fakeGet.load("props");
console.log(fakeGet.props);`,
},
{
code: `
var fakeGet = worksheet.notAGetFunction("props");
await context.sync();
property.load("props");
console.log(property.props);`,
},
{
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/fill/color, address");
await context.sync();
console.log(range.font.fill.color);
console.log(range.address);`,
},
{
code: `
var range = worksheet.getSelectedRange();
range.load("*");
await context.sync();
console.log(range.address);`,
},
{
code: `
var range = worksheet.getSelectedRange();
range.load();
await context.sync();
console.log(range.address);`,
},
{
code: `
var property = worksheet.getItem("sheet");
context.load(property, "values");
await context.sync();
console.log(property.values);`,
},
{
code: `
var property = worksheet.getItem("sheet");
context.load(property);
await context.sync();
console.log(property.values);`,
},
],
invalid: [
{
code: `
var property = worksheet.getItem("sheet");
await context.sync();
property.load("values");
console.log(property.values);`,
errors: [
{
messageId: "callSyncAfterLoad",
data: { name: "property", loadValue: "values" },
},
],
},
{
code: `
var property = worksheet.getItem("sheet");
property.load("values");
await context.sync();
console.log(property.values);
property.load("length");
console.log(property.length);`,
errors: [
{
messageId: "callSyncAfterLoad",
data: { name: "property", loadValue: "length" },
},
],
},
{
code: `
var range = worksheet.getSelectedRange();
range.load(["font/fill/color", "address"]);
console.log(range.font.fill.color);`,
errors: [
{
messageId: "callSyncAfterLoad",
data: { name: "range", loadValue: "font/fill/color" },
},
],
},
{
code: `
var range = worksheet.getSelectedRange();
range.load("*");
console.log(range.address);`,
errors: [
{
messageId: "callSyncAfterLoad",
data: { name: "range", loadValue: "address" },
},
],
},
{
code: `
var range = worksheet.getSelectedRange();
range.load();
console.log(range.address);`,
errors: [
{
messageId: "callSyncAfterLoad",
data: { name: "range", loadValue: "address" },
},
],
},
{
code: `
var property = worksheet.getItem("sheet");
await context.sync();
context.load(property, "values");
console.log(property.values);`,
errors: [
{
messageId: "callSyncAfterLoad",
data: { name: "property", loadValue: "values" },
},
],
},
{
code: `
var property = worksheet.getItem("sheet");
context.load(property, "values");
console.log(property.values);`,
errors: [
{
messageId: "callSyncAfterLoad",
data: { name: "property", loadValue: "values" },
},
],
},
{
code: `
var property = worksheet.getItem("sheet");
await context.sync();
context.load(property);
console.log(property.values);`,
errors: [
{
messageId: "callSyncAfterLoad",
data: { name: "property", loadValue: "values" },
},
],
},
{
code: `
var property = worksheet.getItem("sheet");
context.load(property);
console.log(property.values);`,
errors: [
{
messageId: "callSyncAfterLoad",
data: { name: "property", loadValue: "values" },
},
],
},
],
});