Skip to content

Usage of missing apiVersion for Renderer is not detected #1011

@flovogt

Description

@flovogt

Expected Behavior

Detect that renderer has no apiVersion set. Renderer has to use apiVersion >=2.

Current Behavior

ButtonRenderer.js:

sap.ui.define([
	"sap/ui/core/Renderer",
	"./BaseRenderer"
], (Renderer, BaseRenderer) => {
	"use strict";

	const ButtonRenderer = Renderer.extend(BaseRenderer);
	// The following line is required to be set to 2, UI5 linter should detect this and suggest to set it to 2,
	// otherwise the render method is not compliant with UI5 legacy-free
	// ButtonRenderer.apiVersion = 2;
	ButtonRenderer.render = (oRenderManager, oContainer) => {
		if (!oContainer.getReadyForRendering()) {
			BaseRenderer.render(oRenderManager, oContainer);
			return;
		}
	}
	return ButtonRenderer;
});

BaseRenderer.js:

sap.ui.define([], () => {
	"use strict";

	const BaseRenderer = {};
	BaseRenderer.apiVersion = 2;
	BaseRenderer.render = function () {
	};
	return BaseRenderer;
});

Steps to Reproduce the Issue

  1. Download following files:
  1. Run "ui5lint"
  2. No findings are reported

Context

  • UI5 linter version: 1.20.10

Metadata

Metadata

Assignees

No one assigned

    Labels

    detectionAn issue related to detection capabilities

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions