spec/lib/scan_spec.rb (25 lines of code) (raw):

require 'spec_helper' describe PgQuery, '.scan' do it "scans a simple query and returns the tokens" do result, stderr = described_class.scan("SELECT 1") expect(stderr).to eq [] expect(result.tokens).to eq( [ PgQuery::ScanToken.new(start: 0, end: 6, token: :SELECT, keyword_kind: :RESERVED_KEYWORD), PgQuery::ScanToken.new(start: 7, end: 8, token: :ICONST, keyword_kind: :NO_KEYWORD) ] ) end it "scans comments" do result, stderr = described_class.scan("SELECT /*comment1*/ 1--comment2") expect(stderr).to eq [] expect(result.tokens).to eq( [ PgQuery::ScanToken.new(start: 0, end: 6, token: :SELECT, keyword_kind: :RESERVED_KEYWORD), PgQuery::ScanToken.new(start: 7, end: 19, token: :C_COMMENT, keyword_kind: :NO_KEYWORD), PgQuery::ScanToken.new(start: 20, end: 21, token: :ICONST, keyword_kind: :NO_KEYWORD), PgQuery::ScanToken.new(start: 21, end: 31, token: :SQL_COMMENT, keyword_kind: :NO_KEYWORD) ] ) end end