Here are all possible ways (relatively) to search for a string
//one. includes (introduced in ES6)
var string = "string to search for substring", substring = "sea"; string.includes(substring);
// 2. string.indexOf
var string = "string to search for substring", substring = "sea"; string.indexOf(substring) !== -1;
// 3. RegExp: test
var string = "string to search for substring", expr = /sea/;
//four. string.match
var string = "string to search for substring", expr = "/sea/"; string.match(expr);
//5. string.search
var string = "string to search for substring", expr = "/sea/"; string.search(expr);
Here is the source: https://koukia.ca/top-6-ways-to-search-for-a-string-in-javascript-and-performance-benchmarks-ce3e9b81ad31
Benchmarks seem to be twisted specifically for es6 includes, read the comments.
In summary:
if you don’t need matches. => Or you need a regular expression and therefore use a test . Otherwise, es6 includes or indexOf . Still the test against indexOf is close.
And for includes vs indexOf:
They seem to be the same: https://jsperf.com/array-indexof-vs-includes/4 (if it were otherwise, it would be weird, they basically do the same thing, except for the differences they expose, check it out )
And for my own test. here it is http://jsben.ch/fFnA0. You can test it (it depends on the browser) [test several times] here, how it was done (launching indexOf multiple times and includes one hit of the other, and they are close). So they are the same. [the same test platform is used here as in the article above].

But the long text version (8 times longer) http://jsben.ch/wSBA2

I tested both chrome and firefox, the same thing.
Note that jsben.ch does not handle memory overflow (or limits correctly. It does not display any messages), so the result may not be correct if you add more than 8 duplicates of text (8 work well). But the conclusion is for a very large text - all three work the same way. Otherwise for short indexOf and include are the same and testing is a little slower. or it may be the same as it seemed in chrome (firefox 60 is slower).
Check out jsben.ch: don’t worry if you get inconsistent results. Try a different time and see if it matches or not. Change your browser, sometimes they just do not work correctly. Error or bad memory handling. Or something.
eg:

Here is also my jsperf test (details and graphing for multiple browsers)
(chrome top)
plain text https://jsperf.com/indexof-vs-includes-vs-test-2019
Summary: includes and indexOf have the same performance. the test is slower.
(it seems all three perform the same in chrom)
Long text (12 times longer than normal) https://jsperf.com/indexof-vs-include-vs-test-2019-long-text-str/
Summary: All three perform the same. (chrome and firefox) 
very short line https://jsperf.com/indexof-vs-includes-vs-test-2019-too-short-string/
Summary: includes and indexOf do the same and test slower.

Note: about the benchmark above. For a very short string version (jsperf) there was a big mistake for chrome. Seeing with my eyes. about 60 samples were performed for both indexOf and includes the same method (repeated many times). And the test is a little smaller and so slower. don't be fooled by the wrong schedule. This is clearly wrong. The same test works fine for Firefox, of course, this is a mistake.
Here is an illustration: (the first image was a test on Firefox)
waaaa. Suddenly indexOf became a superman. But, as I said, I did a test and looked at the number of samples, which was about 60. Both indexOf and include, and they did the same. Error on jspref . Other than this (possibly due to a memory constraint problem) everything else was consistent, it gives more details. And you see how much is happening in real time.
Final resume
indexOf vs. includes => Same performance
test => may be slower for short lines or text. And the same goes for long texts. And that makes sense for the overhead that the regex engine adds. In chrome, it seemed completely unimportant.