Skip to content
This repository has been archived by the owner on Aug 7, 2023. It is now read-only.

Commit

Permalink
Add specs
Browse files Browse the repository at this point in the history
Add a basic suite of specs to ensure the package is minimally working.
  • Loading branch information
Arcanemagus committed Dec 11, 2015
1 parent 804ffa5 commit 2efb3f9
Show file tree
Hide file tree
Showing 5 changed files with 95 additions and 2 deletions.
21 changes: 19 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,35 @@
"url": "https://github.com/AtomLinter/linter-flake8"
},
"dependencies": {
"atom-linter": "^4.0.1",
"atom-linter": "^4.1.1",
"atom-package-deps": "^3.0.6"
},
"devDependencies": {
"coffeelint": "^1.12.1"
"coffeelint": "^1.14.1",
"eslint": "^1.10.3",
"babel-eslint": "^4.1.5",
"eslint-config-airbnb": "^2.0.0"
},
"package-deps": [
"linter"
],
"scripts": {
"lint": "./node_modules/.bin/coffeelint lib"
},
"eslintConfig": {
"rules": {
"comma-dangle": 0
},
"extends": "airbnb/base",
"parser": "babel-eslint",
"globals": {
"atom": true
},
"env": {
"es6": true,
"node": true
}
},
"providedServices": {
"linter": {
"versions": {
Expand Down
8 changes: 8 additions & 0 deletions spec/.eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"globals": {
"waitsForPromise": true
},
"env": {
"jasmine": true
}
}
1 change: 1 addition & 0 deletions spec/fixtures/bad.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
asfd
1 change: 1 addition & 0 deletions spec/fixtures/good.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
"""Simple test file."""
66 changes: 66 additions & 0 deletions spec/linter-flake8-spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
'use babel';

describe('The flake8 provider for Linter', () => {
const lint = require('../lib/main').provideLinter().lint;

beforeEach(() => {
waitsForPromise(() => {
return Promise.all([
atom.packages.activatePackage('linter-flake8'),
atom.packages.activatePackage('language-python').then(() =>
atom.workspace.open(__dirname + '/fixtures/good.py')
)
]);
});
});

it('should be in the packages list', () => {
return expect(atom.packages.isPackageLoaded('linter-flake8')).toBe(true);
});

it('should be an active package', () => {
return expect(atom.packages.isPackageActive('linter-flake8')).toBe(true);
});

describe('checks bad.py and', () => {
let editor = null;
beforeEach(() => {
waitsForPromise(() => {
return atom.workspace.open(__dirname + '/fixtures/bad.py').then(openEditor => {
editor = openEditor;
});
});
});

it('finds at least one message', () => {
return lint(editor).then(messages => {
expect(messages.length).toBeGreaterThan(0);
});
});

it('verifies that message', () => {
return lint(editor).then(messages => {
expect(messages[0].type).toBeDefined();
expect(messages[0].type).toEqual('Warning');
expect(messages[0].html).not.toBeDefined();
expect(messages[0].text).toBeDefined();
expect(messages[0].text).toEqual('D100 — Missing docstring in public module');
expect(messages[0].filePath).toBeDefined();
expect(messages[0].filePath).toMatch(/.+spec[\\\/]fixtures[\\\/]bad\.py$/);
expect(messages[0].range).toBeDefined();
expect(messages[0].range.length).toEqual(2);
expect(messages[0].range).toEqual([[0, 0], [0, 1]]);
});
});
});

it('finds nothing wrong with a valid file', () => {
waitsForPromise(() => {
return atom.workspace.open(__dirname + '/fixtures/good.py').then(editor => {
return lint(editor).then(messages => {
expect(messages.length).toEqual(0);
});
});
});
});
});

0 comments on commit 2efb3f9

Please sign in to comment.