mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
added lexer/parser support for templated metric expressions, karma test runner is working
This commit is contained in:
27
src/test/karma.conf.js
Normal file
27
src/test/karma.conf.js
Normal file
@@ -0,0 +1,27 @@
|
||||
module.exports = function(config) {
|
||||
config.set({
|
||||
basePath: '../',
|
||||
|
||||
frameworks: ['mocha', 'requirejs', 'expect'],
|
||||
|
||||
// list of files / patterns to load in the browser
|
||||
files: [
|
||||
'test/test-main.js',
|
||||
{pattern: 'app/**/*.js', included: false},
|
||||
{pattern: 'test/**/*.js', included: false}
|
||||
],
|
||||
|
||||
// list of files to exclude
|
||||
exclude: [
|
||||
],
|
||||
|
||||
reporters: ['progress'],
|
||||
port: 9876,
|
||||
colors: true,
|
||||
logLevel: config.LOG_INFO,
|
||||
autoWatch: true,
|
||||
browsers: ['Chrome'],
|
||||
captureTimeout: 60000,
|
||||
singleRun: false
|
||||
});
|
||||
};
|
||||
@@ -30,6 +30,15 @@ define([
|
||||
expect(tokens[tokens.length - 1].value).to.be(')');
|
||||
});
|
||||
|
||||
it('should tokenize metric with template parameter', function() {
|
||||
var lexer = new Lexer("metric.[[server]].test");
|
||||
var tokens = lexer.tokenize();
|
||||
expect(tokens[2].type).to.be('templateStart');
|
||||
expect(tokens[3].type).to.be('identifier');
|
||||
expect(tokens[3].value).to.be('server');
|
||||
expect(tokens[4].type).to.be('templateEnd');
|
||||
});
|
||||
|
||||
it('should handle error with unterminated string', function() {
|
||||
var lexer = new Lexer("alias(metric, 'asd)");
|
||||
var tokens = lexer.tokenize();
|
||||
|
||||
@@ -54,6 +54,15 @@ define([
|
||||
expect(rootNode.params[1].type).to.be('metric');
|
||||
});
|
||||
|
||||
it('function with templated series', function() {
|
||||
var parser = new Parser("sum(test.[[server]].count)");
|
||||
var rootNode = parser.getAst();
|
||||
|
||||
expect(rootNode.message).to.be(undefined)
|
||||
expect(rootNode.params[0].type).to.be('metric');
|
||||
expect(rootNode.params[0].segments[1].type).to.be('template');
|
||||
});
|
||||
|
||||
it('invalid metric expression', function() {
|
||||
var parser = new Parser('metric.test.*.asd.');
|
||||
var rootNode = parser.getAst();
|
||||
|
||||
10
src/test/test-main.js
Normal file
10
src/test/test-main.js
Normal file
@@ -0,0 +1,10 @@
|
||||
require.config({
|
||||
baseUrl:'base'
|
||||
});
|
||||
|
||||
require([
|
||||
'test/specs/lexer-specs',
|
||||
'test/specs/parser-specs',
|
||||
], function () {
|
||||
window.__karma__.start();
|
||||
});
|
||||
Reference in New Issue
Block a user