Skip to content

Usage of missing apiVersion for Renderer is not detected #1011

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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