All files / wrappers shallow.ts

100% Statements 4/4
100% Branches 0/0
100% Functions 1/1
100% Lines 4/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37                                                          35x 35x 35x 35x        
import { TagOpts, TagRefs, NestedTags } from 'riot';
import RiotWrapper from './RiotWrapper';
import { ShallowRenderer } from '../renderers';
 
/**
 * Mount a tag with shallow-rendering for testing.
 *
 * @param src - source string to define tag(s).
 * @param name - tagName. You can skip this if src contains a single tag.
 * @param opts - opts to create tag with
 * @template TOpts type of opts
 * @template TRefs type of refs property
 * @returns wrapper of the mounted instance
 */
function shallow<
  TOpts extends TagOpts,
  TRefs extends TagRefs = TagRefs,
  TTags extends NestedTags = NestedTags
>(src: string, name: string, opts?: TOpts): RiotWrapper<TOpts, TRefs, TTags>;
function shallow<
  TOpts extends TagOpts,
  TRefs extends TagRefs = TagRefs,
  TTags extends NestedTags = NestedTags
>(src: string, opts?: TOpts): RiotWrapper<TOpts, TRefs, TTags>;
function shallow<
  TOpts extends TagOpts,
  TRefs extends TagRefs = TagRefs,
  TTags extends NestedTags = NestedTags
>(): RiotWrapper<TOpts, TRefs, TTags> {
  const renderer = new ShallowRenderer();
  renderer.render.apply(renderer, arguments);
  const tag = renderer.getMountedInstance();
  return new RiotWrapper<TOpts, TRefs, TTags>(tag!);
}
 
export default shallow;