Outlook_Addin_LLM/node_modules/eslint-plugin-office-addins/test/rules/no-navigational-load.test.ts

172 lines
5.5 KiB
TypeScript

import { ESLintUtils } from '@typescript-eslint/utils'
import rule from '../../src/rules/no-navigational-load';
const ruleTester = new ESLintUtils.RuleTester({
parser: '@typescript-eslint/parser',
});
ruleTester.run('no-navigational-load', rule, {
valid: [
{
code: `
var range = worksheet.getRange("A1");
range.load("borders/fill/size");
console.log(range.borders.fill.size);`
},
{
code: `
var selectedRange = context.workbook.getSelectedRange();
selectedRange.load("format/font/name");`
},
{
code: `
var sheetName = 'Sheet1';
var rangeAddress = 'A1:B2';
var myRange = context.workbook.worksheets.getItem(sheetName).getRange(rangeAddress);
myRange.load('address');
context.sync()
.then(function () {
console.log (myRange.address); // ok
});`
},
{
code: `
var selectedRange = context.workbook.getSelectedRange();
selectedRange.load('text'); // Scalar`
},
{
code: `
var selectedRange = context.workbook.getSelectedRange();
selectedRange.load('values');
if(selectedRange.values === [2]){}`
},
{
code: `
var myRange = context.workbook.worksheets.notAGet();
myRange.load('notAProperty');
var test = myRange.notAProperty;`
},
{
code: `
var range = context.workbook.getRange();
range.load({borders: { fill: { color: true } } });
if (range.borders.fill.color);`
},
{
code: `
var range = context.workbook.getRange();
range.borders.fill.load("color");
console.log(range.borders.fill.color);`
},
{
code: `
var selectedRange = context.workbook.getSelectedRange();
selectedRange.load(''); // Empty`
},
{
code: `
var selectedRange = context.workbook.getSelectedRange();
selectedRange.load(); // Empty`
},
{
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(["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.font.fill.color);
console.log(range.address);`
},
{
code: `
var range = worksheet.getSelectedRange();
range.load({ format: { fill: { color: true } } });
await context.sync();
console.log(range.font.fill.color);`
},
],
invalid: [
{
code: `
var property = worksheet.getItem("sheet");
property.load('thisIsNotAProperty'); //Not a property`,
errors: [{ messageId: "navigationalLoad", data: { loadValue: "thisIsNotAProperty" } }]
},
{
code: `
var property = worksheet.getItem("sheet");
property.load('styles'); // Navigational`,
errors: [{ messageId: "navigationalLoad", data: { loadValue: "styles" } }]
},
{
code: `
var property = worksheet.getItem("sheet");
context.load(property, 'styles'); // Navigational`,
errors: [{ messageId: "navigationalLoad", data: { loadValue: "styles" } }]
},
{
code: `
var range = worksheet.getRange("A1");
range.load('fill'); // Navigational`,
errors: [{ messageId: "navigationalLoad", data: { loadValue: "fill" } }]
},
{
code: `
var range = worksheet.getRange("A1");
context.load(range, 'fill'); // Navigational`,
errors: [{ messageId: "navigationalLoad", data: { loadValue: "fill" } }]
},
{
code: `
var range = worksheet.getRange("A1");
range.load("borders/fill");
console.log(range.borders.fill); // Navigational`,
errors: [{ messageId: "navigationalLoad", data: { loadValue: "borders/fill" } }]
},
{
code: `
var range = worksheet.getRange("A1");
context.load(range, "borders/fill");
console.log(range.borders.fill); // Navigational`,
errors: [{ messageId: "navigationalLoad", data: { loadValue: "borders/fill" } }]
},
{
code: `
var range = worksheet.getRange("A1");
range.load({borders: { fill: true } });`,
errors: [{ messageId: "navigationalLoad", data: { loadValue: "borders/fill" } }]
},
{
code: `
var range = context.workbook.getRange();
range.borders.load("fill");
console.log(range.borders.fill);`,
errors: [{ messageId: "navigationalLoad", data: { loadValue: "fill" } }]
},
{
code: `
var range = worksheet.getSelectedRange();
range.load("address, font/fill");
await context.sync();
console.log(range.font.fill.color);
console.log(range.address);`,
errors: [{ messageId: "navigationalLoad", data: { loadValue: "font/fill" } }]
},
]
});