Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AnimateCSS integration in tests suite #3206

Merged
merged 4 commits into from
Sep 25, 2023

Conversation

bugsounet
Copy link
Contributor

Hi,

Just because, i never try to code a test
I purpose to supervise this work

After, perhaps it is not necessary to integrate it in develop branch.
It's up to you to decide

@codecov-commenter
Copy link

Codecov Report

Merging #3206 (5b1765c) into develop (95ec309) will decrease coverage by 0.26%.
The diff coverage is n/a.

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

@@             Coverage Diff             @@
##           develop    #3206      +/-   ##
===========================================
- Coverage    25.21%   24.95%   -0.26%     
===========================================
  Files           54       54              
  Lines        11925    11925              
===========================================
- Hits          3007     2976      -31     
- Misses        8918     8949      +31     

see 1 file with indirect coverage changes

@bugsounet
Copy link
Contributor Author

bugsounet commented Sep 24, 2023

On the other hand I don't know how to do the test with an animation that doesn't exist.

ie:

  • must NOT contain .compliments.animate__animated.animate___${animationName}
  • contain ONLY .compliments

@rejas: This can be useful too, in case you want to push this PR into develop

@khassel
Copy link
Collaborator

khassel commented Sep 24, 2023

I think we should have these tests.

First of all sorry for missing test documentation, maybe I do an extra PR for this ...

We have 3 test projects

  • unit: only logical tests without running mm instance
  • e2e: with running mm instance
  • electron: should only used for electron tests and some testcases where we have to mock special date/times

So I moved your test to tests/e2e/animateCSS_spec.js (I think it's not really module related) and did some changes:

/* AnimateCSS integration Test with compliments module
 *
 * By bugsounet https://github.com/bugsounet
 * 09/2023
 * MIT Licensed.
 */
const helpers = require("./helpers/global-setup.js");

describe("AnimateCSS integration Test", () => {
	// define config file for testing
	let testConfigFile = "tests/configs/modules/compliments/compliments_animateCSS.js";

	/**
	 * move similar tests in function doTest
	 * @param {string} [animationIn] animation in name of AnimateCSS to test.
	 * @param {string} [animationOut] animation out name of AnimateCSS to test.
	 */
	const doTest = async (animationIn, animationOut) => {
		await helpers.getDocument();
		let elem = await helpers.waitForElement(`.compliments`);
		expect(elem).not.toBe(null);
		let styles = window.getComputedStyle(elem);

		if (animationIn && animationIn !== "") {
			expect(styles._values["animation-name"]).toBe(animationIn);
		} else {
			expect(styles._values["animation-name"]).toBe(undefined);
		}

		if (animationOut && animationOut !== "") {
			elem = await helpers.waitForElement(`.compliments.animate__animated.animate__${animationOut}`);
			expect(elem).not.toBe(null);
			styles = window.getComputedStyle(elem);
			expect(styles._values["animation-name"]).toBe(animationOut);
		} else {
			expect(styles._values["animation-name"]).toBe(undefined);
		}
	};

	afterEach(async () => {
		await helpers.stopApplication();
	});

	describe("Animated In and Out Test", () => {
		it("with flipInX and flipOutX animation", async () => {
			await helpers.startApplication(testConfigFile);
			await doTest("flipInX", "flipOutX");
		});
	});

	describe("no Animation in test", () => {
		it("without animation", async () => {
			await helpers.startApplication("tests/configs/modules/compliments/compliments_anytime.js");
			await doTest();
		});
	});
});

We need an additional line in tests/e2e/helpers/global-setup at position 33

			global.window = dom.window;

to get window.getComputedStyle working which is used in above test.

Feel free to use/improve ...

@bugsounet
Copy link
Contributor Author

Thanks for explain what's this 3 projects ;)
Sure maybe a doc is welcome

I will take a look for getComputedStyle() tomorrow because... I don't know what is this (no one is perfect!)

In all case, I will check your code tomorrow

A simple copy and paste without understanding anything is useless (for me)
In my case, this is how we can move forward!

@bugsounet
Copy link
Contributor Author

It's better like this ?

I added some tests which should not return any animation

@rejas rejas merged commit ad665a7 into MagicMirrorOrg:develop Sep 25, 2023
7 checks passed
@bugsounet
Copy link
Contributor Author

Codecov Report

Merging #3206 (5b1765c) into develop (95ec309) will decrease coverage by 0.26%.
The diff coverage is n/a.

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

@@             Coverage Diff             @@
##           develop    #3206      +/-   ##
===========================================
- Coverage    25.21%   24.95%   -0.26%     
===========================================
  Files           54       54              
  Lines        11925    11925              
===========================================
- Hits          3007     2976      -31     
- Misses        8918     8949      +31     

see 1 file with indirect coverage changes

Someone can explain me, I really don't understand what's coverage / hits / misses

Thanks again and sorry for my (bad) knowledge

@bugsounet bugsounet deleted the test_animate branch September 26, 2023 17:06
@rejas
Copy link
Collaborator

rejas commented Sep 26, 2023

Someone can explain me, I really don't understand what's coverage / hits / misses

Coverage is the percentage of code lines that are covered by tests, hits are the lines in absolute numbers, misses the lines that are not covered.

@khassel
Copy link
Collaborator

khassel commented Sep 26, 2023

may I don't understand these reports but I would expect an increase of coverage as this PR only adds tests ...

@rejas
Copy link
Collaborator

rejas commented Sep 27, 2023

Not sure if its configured correctly and checks against the master branch to compare the numbers

@khassel
Copy link
Collaborator

khassel commented Sep 27, 2023

don't know anything about codecov setup but I ignore those reports because the content is always garbage. From my side we can remove codecov ...

@MichMich MichMich mentioned this pull request Oct 1, 2023
MichMich added a commit that referenced this pull request Oct 1, 2023
## [2.25.0] - 2023-10-01

Thanks to: @bugsounet, @dgoth, @dependabot, @kenzal, @Knapoc,
@KristjanESPERANTO, @martingron, @NolanKingdon, @Paranoid93,
@TeddyStarinvest and @Ybbet.

Special thanks to @khassel, @rejas and @sdetweil for taking over most
(if not all) of the work on this release as project collaborators. This
version would not be there without their effort. Thank you guys! You are
awesome!

> ⚠️ This release needs nodejs version >= `v18`, older releases have
reached end of life and will not work!

### Added

- Added UV Index support to OpenWeatherMap
- Added 'hideDuplicates' flag to the calendar module
- Added `allowOverrideNotification` to weather module to enable sending
current weather objects with the `CURRENT_WEATHER_OVERRIDE` notification
to supplement/replace the current weather displayed
- Added optional AnimateCSS animate for `hide()`, `show()`,
`updateDom()`
- Added AnimateIn and animateOut in module config definition
- Apply AnimateIn rules on the first start
- Added automatic client page reload when server was restarted by
setting `reloadAfterServerRestart: true` in `config.js`, per default
`false` (#3105)
- Added eventClass option for customEvents on the default calendar
- Added AnimateCSS integration in tests suite (#3206)
- Added npm dependabot [Reserved to developer] (#3210)
- Added improved logging for calendar (#3110)

### Removed

- **Breaking Change**: Removed `digest` authentication method from
calendar module (which was already broken since release `2.15.0`)

### Updated

- Update roboto fonts to version v5
- Update issue template
- Update dev/dependencies incl. electron to v26
- Replace pretty-quick by lint-staged
(<prettier/pretty-quick#164>)
- Update engine node >=18. v16 reached it's end of life. (#3170)
- Update typescript definition for modules
- Cleaned up nunjuck templates
- Replace `node-fetch` with internal fetch (#2649) and remove
`digest-fetch`
- Update the French translation according to the English file.
- Update dependabot incl. vendor/fonts (monthly check)
- Renew `package-lock.json` for release

### Fixed

- Fix engine check on npm install (#3135)
- Fix undefined formatTime method in clock module (#3143)
- Fix clientonly startup fails after async added (#3151)
- Fix electron width/heigth when using xrandr under bullseye
- Fix time issue with certain recurring events in calendar module
- Fix ipWhiteList test (#3179)
- Fix newsfeed: Convert HTML entities, codes and tag in description
(#3191)
- Respect width/height (no fullscreen) if set in electronOptions
(together with `fullscreen: false`) in `config.js` (#3174)
- Fix: AnimateCSS merge hide() and show() animated css class when we do
multiple call
- Fix `Uncaught SyntaxError: Identifier 'getCorsUrl' has already been
declared (at utils.js:1:1)` when using `clock` and `weather` module
(#3204)
- Fix overriding `config.js` when running tests (#3201)
- Fix issue in weathergov provider with probability of precipitation not
showing up on hourly or daily forecast

---------

Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Karsten Hassel <hassel@gmx.de>
Co-authored-by: Malte Hallström <46646495+SkySails@users.noreply.github.com>
Co-authored-by: Veeck <github@veeck.de>
Co-authored-by: veeck <michael@veeck.de>
Co-authored-by: dWoolridge <dwoolridge@charter.net>
Co-authored-by: Johan <jojjepersson@yahoo.se>
Co-authored-by: Dario Mratovich <dario_mratovich@hotmail.com>
Co-authored-by: Dario Mratovich <dario.mratovich@outlook.com>
Co-authored-by: Magnus <34011212+MagMar94@users.noreply.github.com>
Co-authored-by: Naveen <172697+naveensrinivasan@users.noreply.github.com>
Co-authored-by: buxxi <buxxi@omfilm.net>
Co-authored-by: Thomas Hirschberger <47733292+Tom-Hirschberger@users.noreply.github.com>
Co-authored-by: Kristjan ESPERANTO <35647502+KristjanESPERANTO@users.noreply.github.com>
Co-authored-by: Andrés Vanegas Jiménez <142350+angeldeejay@users.noreply.github.com>
Co-authored-by: Dave Child <dave@addedbytes.com>
Co-authored-by: grenagit <46225780+grenagit@users.noreply.github.com>
Co-authored-by: Grena <grena@grenabox.fr>
Co-authored-by: Magnus Marthinsen <magmar@online.no>
Co-authored-by: Patrick <psieg@users.noreply.github.com>
Co-authored-by: Piotr Rajnisz <56397164+rajniszp@users.noreply.github.com>
Co-authored-by: Suthep Yonphimai <tomzt@users.noreply.github.com>
Co-authored-by: CarJem Generations (Carter Wallace) <cwallacecs@gmail.com>
Co-authored-by: Nicholas Fogal <nfogal.misc@gmail.com>
Co-authored-by: JakeBinney <126349119+JakeBinney@users.noreply.github.com>
Co-authored-by: OWL4C <124401812+OWL4C@users.noreply.github.com>
Co-authored-by: Oscar Björkman <17575446+oscarb@users.noreply.github.com>
Co-authored-by: Ismar Slomic <ismar@slomic.no>
Co-authored-by: Jørgen Veum-Wahlberg <jorgen.wahlberg@amedia.no>
Co-authored-by: Eddie Hung <6740044+eddiehung@users.noreply.github.com>
Co-authored-by: Bugsounet - Cédric <github@bugsounet.fr>
Co-authored-by: bugsounet <bugsounet@bugsounet.fr>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Knapoc <Knapoc@users.noreply.github.com>
Co-authored-by: sam detweiler <sdetweil@gmail.com>
Co-authored-by: veeck <michael.veeck@nebenan.de>
Co-authored-by: Paranoid93 <6515818+Paranoid93@users.noreply.github.com>
Co-authored-by: NolanKingdon <27908974+NolanKingdon@users.noreply.github.com>
Co-authored-by: J. Kenzal Hunter <kenzal.hunter@gmail.com>
Co-authored-by: Teddy <teddy.payet@gmail.com>
Co-authored-by: TeddyStarinvest <teddy.payet@starinvest.com>
Co-authored-by: martingron <61826403+martingron@users.noreply.github.com>
Co-authored-by: dgoth <132394363+dgoth@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants