@dhlab/e2e-autogen
Version:
Google 스프레드시트 기반 시나리오를 Playwright 테스트 스텁 코드로 자동 생성하고, 테스트 실행 결과를 다시 시트에 업데이트하는 CLI 도구
95 lines (93 loc) • 3.17 kB
JavaScript
;
var _TestSuiteSheet_instances, _TestSuiteSheet_googleSheetColumns, _TestSuiteSheet_applyHeaderAndDropdown;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TestSuiteSheet = void 0;
const tslib_1 = require("tslib");
const spreadsheet_sheet_1 = require("./spreadsheet-sheet");
class TestSuiteSheet extends spreadsheet_sheet_1.SpreadsheetSheet {
constructor(spreadsheetId, gid, sheets, googleSheetColumns, sheetsProvider) {
super(spreadsheetId, gid, sheets, sheetsProvider);
_TestSuiteSheet_instances.add(this);
_TestSuiteSheet_googleSheetColumns.set(this, void 0);
tslib_1.__classPrivateFieldSet(this, _TestSuiteSheet_googleSheetColumns, googleSheetColumns, "f");
}
columnNumberOf(columnName) {
return COLUMN_INDEX[tslib_1.__classPrivateFieldGet(this, _TestSuiteSheet_googleSheetColumns, "f")[columnName]];
}
async appendResultColumn(values, statusLabels, totalRows, colIdx) {
await this.writeAfterLastColumn(values, 1);
await tslib_1.__classPrivateFieldGet(this, _TestSuiteSheet_instances, "m", _TestSuiteSheet_applyHeaderAndDropdown).call(this, statusLabels, totalRows, colIdx);
}
}
exports.TestSuiteSheet = TestSuiteSheet;
_TestSuiteSheet_googleSheetColumns = new WeakMap(), _TestSuiteSheet_instances = new WeakSet(), _TestSuiteSheet_applyHeaderAndDropdown = async function _TestSuiteSheet_applyHeaderAndDropdown(statusLabels, totalRows, colIdx) {
const requests = [
{
repeatCell: {
range: {
sheetId: this.gid,
startRowIndex: 0,
endRowIndex: 2,
startColumnIndex: colIdx,
endColumnIndex: colIdx + 1,
},
cell: {
userEnteredFormat: {
backgroundColor: { red: 0.85, green: 0.92, blue: 0.98 },
horizontalAlignment: "CENTER",
textFormat: { bold: true },
},
},
fields: "userEnteredFormat(backgroundColor,horizontalAlignment,textFormat.bold)",
},
},
{
setDataValidation: {
range: {
sheetId: this.gid,
startRowIndex: 2,
endRowIndex: totalRows,
startColumnIndex: colIdx,
endColumnIndex: colIdx + 1,
},
rule: {
condition: {
type: "ONE_OF_LIST",
values: statusLabels.map((v) => ({ userEnteredValue: v })),
},
strict: true,
showCustomUi: true,
},
},
},
];
await this.applyStyle(requests);
};
const COLUMN_INDEX = {
A: 0,
B: 1,
C: 2,
D: 3,
E: 4,
F: 5,
G: 6,
H: 7,
I: 8,
J: 9,
K: 10,
L: 11,
M: 12,
N: 13,
O: 14,
P: 15,
Q: 16,
R: 17,
S: 18,
T: 19,
U: 20,
V: 21,
W: 22,
X: 23,
Y: 24,
Z: 25,
};