Giter VIP home page Giter VIP logo

jasmine-dom's Issues

Missing dependency: dom-accessibility-api

  • jasmine-dom version: 1.3.2
  • node version: 14
  • npm (or yarn) version: 6.14.17

Relevant code or config:

var your => (code) => here;

What you did:

What happened:

ERROR in ./node_modules/@testing-library/jasmine-dom/dist/toHaveAccessibleName.js 7:27-59
Module not found: Error: Can't resolve 'dom-accessibility-api'

Reproduction:

import JasmineDOM from '@testing-library/jasmine-dom';

Problem description:

Suggested solution:

add dom-accessibility-api to dependencies

Instructions do not work on Angular 10 CLI project

I have an Angular 10 CLI project (v10.1.2). I've installed @testing-library/[email protected], but as I'm using Karma (configured via Angular) and Typescript, I'm not sure how to install this library!

I tried following the instructions for the latest version (v1.1.0), but while I can see the matchers on the HTMLMatchers type in VSCode, I can't actually add the Matchers, because trying to import them with import JasmineDOM from '@testing-library/jasmine-dom'; gives an error File C:/.../node_modules/@types/testing-library__jasmine-dom/index.d.ts is not a module.

As this is an Angular CLI project, would it actually make more sense to use a karma plugin!?

Could not find a declaration file for module '@testing-library/jasmine-dom/dist' on Angular 12 project

  • jasmine-dom version: 1.0.3
  • node version: 14.15.4
  • npm version: 6.14.10
  • @angular/core version: 12.2.9
  • typescript version: 4.3.2
  • jasmine-core version: 3.8.0

Relevant code or config:

tsconfig.spec.json:

/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./out-tsc/spec",
    "types": ["jasmine", "@testing-library/jasmine-dom"]
  },
  "files": ["src/test.ts", "src/polyfills.ts"],
  "include": ["src/**/*.spec.ts", "src/**/*.d.ts"]
}

test.ts:

// This file is required by karma.conf.js and loads recursively all the .spec and framework files

import 'zone.js/testing';
import { getTestBed } from '@angular/core/testing';
import {
  BrowserDynamicTestingModule,
  platformBrowserDynamicTesting,
} from '@angular/platform-browser-dynamic/testing';

import JasmineDOM from '@testing-library/jasmine-dom/dist';

declare const require: {
  context(
    path: string,
    deep?: boolean,
    filter?: RegExp
  ): {
    keys(): string[];
    <T>(id: string): T;
  };
};

// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting());
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);

beforeAll(() => {
  // On the Jasmine version I'm using the addMatches method is directly on the jasmine variable instead of having to call .getEnv()
  jasmine.addMatchers(JasmineDOM);
});

What you did:

Tried to run the tests:

npm run-script test

After the error happened, installed the types package as suggested in the error message, but the same error occurred:

npm run-script testnpm i --save-dev @types/testing-library__jasmine-dom

What happened:

Error: src/test.ts:10:24 - error TS7016: Could not find a declaration file for module '@testing-library/jasmine-dom/dist'. 'C:/some-path/angular/node_modules/@testing-library
/jasmine-dom/dist/index.js' implicitly has an 'any' type.
  Try `npm i --save-dev @types/testing-library__jasmine-dom` if it exists or add a new declaration (.d.ts) file containing `declare module '@testing-library/jasmine-dom/dist';`

10 import JasmineDOM from '@testing-library/jasmine-dom/dist';

Problem description:

I couldn't make it work on an Angular 12 project by following the TypeScript instructions on the README file.
Please note that on tests.ts I had to call jasmine.addMatchers(JasmineDOM); without .getEnv() as it was suggested in the README. Anyway the error happens before this line.

I also took a look at this other related issue, but couldn't find anything that could solve this.

Is there any additional configuration I need to make this work?
Thanks in advance for the support and for providing this helpful library!

Inverting matchers doesn't affect error message

  • jasmine-dom version: 0.0.0-semantic

Relevant code or config:

expect(screen.getByText('Yes')).not.toBeChecked();

What you did:

Inverted a toBeChecked match - which failed.

What happened:

Error: FAILED Expected the element input type="radio" to be checked and it isn't checked.

What should have happened:

Message should either be:
Error: FAILED Expected the element input type="radio" not to be checked and it is.
Or:
Error: FAILED Expected the element input type="radio" checked value to match false but it was true

Vulnerabilities

Hi, sorry about this, but I can't use my forked version of your library because it has 3 vulnerabilities and I can't seem to fix them?

found 3 vulnerabilities (2 moderate, 1 high) in 1464 scanned packages
  3 vulnerabilities require manual review. See the full report for details.

C:\src\jasmine-dom>npm audit fix
up to date in 8.942s

95 packages are looking for funding
  run `npm fund` for details

fixed 0 of 3 vulnerabilities in 1464 scanned packages
  3 vulnerabilities required manual review and could not be updated

I've tried updating kcd-scripts but it didn't make any difference?

Remove type defintions

We have currently @types/testing-library__jasmine-dom installed which make problematic upgrade type definitions. Since we want definitions of a version to yet to exist which means wrong definitions. There are 2 options:

  1. Remove definitions package
  2. Contain the actual TS definitions

I recommend the first option

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.